Compare commits

...

122 Commits
4.0.3 ... 4.0.7

Author SHA1 Message Date
Stephan Raue
f2efba3fde config/version: set version to 4.0.7
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-09 03:50:34 +02:00
Stephan Raue
63b6450499 projects/RPi/patches/xbmc: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-09 01:32:15 +02:00
Stephan Raue
26bd487945 linux: update to linux-3.14.11
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-08 18:25:03 +02:00
Stephan Raue
4e4b41466a xf86-input-evdev: update to xf86-input-evdev-2.9.0, depends now on 'inputproto', 'libevdev' and 'systemd'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-08 18:25:03 +02:00
Stephan Raue
1e9da92e52 new package: add package 'libevdev'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-08 18:25:03 +02:00
Stephan Raue
2aa4b9e7ca pixman: update to pixman-0.32.6
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-08 18:25:03 +02:00
Stephan Raue
dee2f48e4e xtrans: update to xtrans-1.3.4
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-08 18:25:03 +02:00
Frank van Klaveren
9f7ed691a2 Update libhdhomerun to 20140604 2014-07-08 16:44:12 +02:00
Stephan Raue
8c44c2e60c bcm2835-bootloader: update to bcm2835-bootloader-1e7d3d9
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-07 15:52:27 +02:00
Stephan Raue
7f5e1fe3e3 bcm2835-driver: update to bcm2835-driver-1e7d3d9
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-07 15:52:25 +02:00
Stephan Raue
ccb9f18dc7 bluez: update to bluez-5.21
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 17:51:00 +02:00
Stephan Raue
5951c7a9c9 xf86-video-nvidia: update to xf86-video-nvidia-331.89
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 17:50:59 +02:00
Stephan Raue
780ae9c4d0 dbus: update to dbus-1.8.6
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:34:43 +02:00
Stephan Raue
1db2a8a9b5 libffi: update to libffi-3.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:34:27 +02:00
Stephan Raue
18fbddb442 dbus-glib: update to dbus-glib-0.102
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:34:12 +02:00
Stefan Saraev
e7508278e1 systemd: drop double gcrypt depend 2014-07-05 16:33:32 +02:00
Stephan Raue
0c9124f171 libvdpau: update to libvdpau-0.8
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:33:14 +02:00
Stephan Raue
c1be286cec libva-intel-driver: update to libva-intel-driver-1.3.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:33:14 +02:00
Stephan Raue
94b11f9dd5 libva-driver-intel: rename to package 'libva-intel-driver', change source url
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:33:14 +02:00
Stephan Raue
0eb3f773e2 simplejson: update to simplejson-3.5.3
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:33:14 +02:00
Stephan Raue
3cd503a505 busybox: add upstream patches
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:33:14 +02:00
Stephan Raue
abe0b1bdca linux: update to linux-3.14.10
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:33:13 +02:00
Stefan Saraev
1cf465dced propects/Generic/options: lcdproc: enable serialVFD
closes #3341
2014-07-05 16:33:13 +02:00
Stephan Raue
5a394f3f53 xf86-video-ati: update to xf86-video-ati-7.4.0
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:33:13 +02:00
Stephan Raue
bc9c5f891c xorg-server: update to xorg-server-1.15.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:33:13 +02:00
Stephan Raue
55922b59b7 lzo: update to lzo-2.08
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:33:13 +02:00
Stephan Raue
665375f922 alsa-utils: dont install default ALSA restore rule, to avoid overwriting our own mixer settings with default values. rename our udev rule to start after other default sound config rules. this should fix #3350, this should fix #3346
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:33:13 +02:00
Stephan Raue
37018a33ef Revert "Revert "alsa-utils: update to alsa-utils-1.0.28""
This reverts commit c18ae0f26b.
2014-07-05 16:33:13 +02:00
Stephan Raue
19bb76a6f2 Revert "Revert "alsa-lib: update to alsa-lib-1.0.28""
This reverts commit c6caa03015.
2014-07-05 16:33:13 +02:00
Stephan Raue
59a91a67fb lzo: add patch to fix build on i386
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-07-05 16:33:13 +02:00
Stefan Saraev
e5ddd19161 xbmc: oe_setup_addon: create missing folder (early) 2014-07-04 19:07:45 +03:00
vpeter4
2798741270 oe_setup_addon: create missing folder 2014-07-03 23:08:53 +03:00
Stefan Saraev
5caa286b0e Merge pull request #3347 from fritsch/4.0
Revert Bugfixes that introduced bugs
2014-06-29 00:52:12 +03:00
fritsch
0bfd5e466d Revert "libva-driver-intel: rename to package 'libva-intel-driver', change source url"
This reverts commit e20cd276a3.
2014-06-28 23:36:59 +02:00
fritsch
c6caa03015 Revert "alsa-lib: update to alsa-lib-1.0.28"
This reverts commit 978f075594.
2014-06-28 23:36:29 +02:00
fritsch
c18ae0f26b Revert "alsa-utils: update to alsa-utils-1.0.28"
This reverts commit 0c2f2be1be.
2014-06-28 23:36:15 +02:00
Stephan Raue
838229616b linux: update to linux-3.14.9
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-27 06:03:05 +02:00
Stephan Raue
ce71d26923 lzo: update to lzo-2.07
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-27 06:00:42 +02:00
Stephan Raue
dec3f64eb1 libbluray: update to libbluray-0.6.0
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-26 18:57:07 +02:00
Stephan Raue
51372a751f config/version: set version back to devel
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-26 18:56:42 +02:00
Stephan Raue
fd52ff9d08 config/version: set version to 4.0.6
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-25 18:46:44 +02:00
Stephan Raue
ff687b3a06 service.openelec.settings: update to service.openelec.settings-0.3.18
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-25 18:35:00 +02:00
Stephan Raue
4bbf6d1014 Mesa: update to Mesa-10.1.6
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-25 18:03:08 +02:00
Stephan Raue
0b046eab86 gettext: add patch to dont build docs and examples
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-23 19:03:35 +02:00
Stephan Raue
f90472fb77 gettext: build 'gettext-tools' only for host build
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-23 19:03:35 +02:00
Stephan Raue
5377342718 samba: update to samba-3.6.24
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-23 19:03:34 +02:00
Stefan Saraev
a32fad3798 busybox: double pciutils in depends 2014-06-23 13:38:42 +02:00
Stephan Raue
dccedfda07 gcc: update configure options (inspired by CLFS)
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-23 13:38:42 +02:00
Stephan Raue
74239e3027 cloog: update to cloog-0.18.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-23 13:38:42 +02:00
Stephan Raue
5fb72aad8e mpc: update to mpc-1.0.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-23 13:38:42 +02:00
Stephan Raue
42c4095dd8 projects/RPi/patches/xbmc: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-22 23:23:46 +02:00
Stephan Raue
5703f68b55 bcm2835-bootloader: update to bcm2835-bootloader-462f3e3
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-22 17:04:21 +02:00
Stephan Raue
1c35a56e09 bcm2835-driver: update to bcm2835-driver-462f3e3
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-22 17:04:21 +02:00
Stephan Raue
3abecdba4e libaacs: update to libaacs-0.7.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-22 16:00:24 +02:00
Stephan Raue
85d63c456c llvm: update to llvm-3.4.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-22 16:00:06 +02:00
Stephan Raue
0c2f2be1be alsa-utils: update to alsa-utils-1.0.28
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-22 15:59:50 +02:00
Stephan Raue
978f075594 alsa-lib: update to alsa-lib-1.0.28
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-22 15:59:35 +02:00
Stephan Raue
4779966a0b linux: add patch to fix FD72921
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-21 16:14:45 +02:00
Stephan Raue
380874e25d misc-firmware: update to misc-firmware-0.0.11
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-19 22:21:16 +02:00
Stephan Raue
6ba6413f36 kmod: update to kmod-18
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-19 22:21:07 +02:00
Stephan Raue
a6d3963612 gcc: add patches to fix GCC-60902, this should fix #3323
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-18 14:55:29 +02:00
Stephan Raue
a06e99326f libusb: update to libusb-1.0.19
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-18 14:55:29 +02:00
Stephan Raue
ab64766ae3 dbus: update to dbus-1.8.4
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-18 14:55:29 +02:00
Stephan Raue
b50d88c0e4 libpng: update to libpng-1.6.12
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-18 14:55:29 +02:00
Stephan Raue
d8f7fa4436 file: update to file-5.19
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-18 14:55:29 +02:00
Stephan Raue
8ddba4bb59 linux: update Radeon firmwares
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-17 21:28:40 +02:00
Stephan Raue
86c9c6a247 misc-firmware: update to misc-firmware-0.0.10
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-17 21:28:21 +02:00
Stephan Raue
5b81e398ef linux: update to linux-3.14.8
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-17 03:37:01 +02:00
Stephan Raue
21a07a9916 wlan-firmware: update to wlan-firmware-0.0.23
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-15 18:10:59 +02:00
Stephan Raue
4255bdb097 wlan-firmware: update to wlan-firmware-0.0.22
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-15 13:58:03 +02:00
Stephan Raue
f2b6c64d7b config/version: set version back to devel
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-15 02:00:37 +02:00
Stephan Raue
43962c6ad8 config/version: set version to 4.0.5
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-14 20:18:36 +02:00
Stephan Raue
a43572a1c8 projects/RPi/patches/linux: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-14 01:19:45 +02:00
Stephan Raue
928493f5c7 projects/RPi/patches/xbmc: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-14 01:19:32 +02:00
Stephan Raue
ad20131a7f bcm2835-bootloader: update to bcm2835-bootloader-e45a4a2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-14 00:49:27 +02:00
Stephan Raue
4ea7a41f34 bcm2835-driver: update to bcm2835-driver-e45a4a2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-14 00:49:27 +02:00
Stephan Raue
f03ad928a1 busybox: add 'morequiet' kernel command line option
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-12 02:45:40 +02:00
Stephan Raue
cba2a6afca linux: update to linux-3.14.7
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-12 02:41:37 +02:00
Stephan Raue
33cbe49b72 Revert "xf86-video-intel: update to xf86-video-intel-2.99.912"
This reverts commit 8b5d773907.
2014-06-12 00:27:25 +02:00
Stephan Raue
8b5d773907 xf86-video-intel: update to xf86-video-intel-2.99.912
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-10 10:33:46 +02:00
Stephan Raue
e20cd276a3 libva-driver-intel: rename to package 'libva-intel-driver', change source url
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-10 10:33:21 +02:00
Stephan Raue
9f2144c0bf bcm2835-bootloader: update to bcm2835-bootloader-2990b78
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-08 23:13:40 +02:00
Stephan Raue
80a29987bb bcm2835-driver: update to bcm2835-driver-2990b78
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-08 23:12:59 +02:00
Stephan Raue
93640b7b2d xbmc: add PR4838
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-08 23:08:02 +02:00
Stephan Raue
3d8bd55620 projects/RPi/patches/linux: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-08 22:56:31 +02:00
Stephan Raue
b614c3c3fb sqlite: update to sqlite-autoconf-3080500
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-08 22:56:09 +02:00
Stephan Raue
eaf8130edb RTL8192CU: add support for more Edimax/Belkin WLAN sticks
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-08 15:46:55 +02:00
Stephan Raue
cf17e70fba Mesa: update to Mesa-10.1.5
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-08 15:39:15 +02:00
Stefan Saraev
2d5fdb1dea vdr-addon: make sure to create videodir 2014-06-08 15:37:58 +02:00
Stephan Raue
112ee117ec projects/*/linux: update kernel config
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-08 14:40:55 +02:00
Stephan Raue
740f99ee3f libgpg-error: specify 'CC_FOR_BUILD'
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-08 02:23:01 +02:00
Stephan Raue
160ba624a0 linux: update to linux-3.14.6
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-08 02:22:35 +02:00
Stephan Raue
2996125367 wpa_supplicant: update to wpa_supplicant-2.2
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-07 14:43:12 +02:00
Stephan Raue
4321dd3c85 libICE: update to libICE-1.0.9
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-07 13:52:39 +02:00
Stephan Raue
547024253c openssl: update to openssl-1.0.1h
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-06 03:56:41 +02:00
Stefan Saraev
5a5f5118be xbmc: handle SIGTERM
In some situations, due to deadlocks or crashes, xbmc fails to exit properly in
CApplication::Stop(), so  g_powerManager.Reboot() / g_powerManager.Powerdown() never gets
called, that's a big no-no for openelec as our users can't shutdown or reboot.
There are few addons reported to cause this behaviour: trakkt.tv, watchdog, weather.underground.

I've also noticed that sometimes new threads (FileCache ??) get started AFTER
CApplication::Stop() is called, delaying shutdown with 1+ minute (2 curl timeoouts?).
The problem seems to be in CJobManager::CancelJobs() but I am too lame to understand where,
why, and how to fix it.

To me, it seems best to let systemd handle it. systemd sends SIGTERM, then waits
TimeoutStopSec=xx seconds then sends SIGKILL,s so dont call g_application.Stop() from
ApplicationMessenger as it can not be trusted. save the requested exitcode instead
(that's required for CEC to switch off the tv) and do it from a simple SIGTERM handler instead.

CEC thread has enough time (5 seconds in xbmc.service) to switch of the TV after receiving OnQuit.
As a side "effect", now guisettings.xml will ALWAYS be saved, even if shutdown / rebooot
is requested externaly (ssh, 3rdparty script).
2014-06-06 03:56:40 +02:00
Stephan Raue
d2a87bf701 config/version: set version back to devel
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-04 16:18:01 +02:00
Stephan Raue
d2e52db7f9 config/version: set version to 4.0.4
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-04 14:53:02 +02:00
Stephan Raue
15d7e8992f e2fsprogs: update to e2fsprogs-1.42.10
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-04 13:45:44 +02:00
Olli Salonen
7dc54ed090 Fix DVB-T2 support with GeniaTech T220/August T210 devices 2014-06-04 13:41:39 +02:00
Stephan Raue
c67cdd49af xbmc: update to xbmc-13-84725b0
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-04 08:24:58 +02:00
Stephan Raue
5d00b37172 bluez: update to bluez-5.19
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-03 03:03:38 +02:00
Stephan Raue
342921f171 Revert "ethtool: add support to disable WOL for broken drivers, add 'e1000e' as broken driver"
This reverts commit 1853a14d93.
2014-06-01 19:54:30 +02:00
Stephan Raue
bf3611a25d linux: update to linux-3.14.5
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-01 02:46:59 +02:00
Stephan Raue
af985cdd7d bcm2835-bootloader: update to bcm2835-bootloader-f15c3b5
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-01 02:46:02 +02:00
Stephan Raue
a031de2ba1 bcm2835-driver: update to bcm2835-driver-f15c3b5
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-06-01 02:45:58 +02:00
Stephan Raue
13ac425381 fontconfig: update to fontconfig-2.11.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-31 01:11:37 +02:00
Stephan Raue
a7094bf4ac bcm2835-driver: update to bcm2835-driver-02eed2f
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-31 00:09:41 +02:00
Stephan Raue
6dee65a10a bcm2835-bootloader: update to bcm2835-bootloader-02eed2f
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-31 00:09:31 +02:00
Stephan Raue
b228b28e9a projects/RPi/patches/linux: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-30 23:53:32 +02:00
Stephan Raue
6f7387a45f bcm2835-bootloader: update to bcm2835-bootloader-e2b77f9
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-30 23:39:30 +02:00
Stephan Raue
5dc342162a bcm2835-driver: update to bcm2835-driver-e2b77f9
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-30 23:39:27 +02:00
Stephan Raue
708b4f9e2f projects/RPi/patches/xbmc: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-30 23:18:44 +02:00
Stephan Raue
6c2e76d7c1 nettle: add patch to fix pkgconfig file, so gnutls is finding all nettle headers
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-30 20:37:19 +02:00
Stephan Raue
f769ae2642 nettle: set CC_FOR_BUILD
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-30 20:37:18 +02:00
Stephan Raue
296123b07c nettle: add patch to support out-of-tree builds
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-30 20:37:18 +02:00
Stephan Raue
666f798123 systemd: update to systemd-213
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-30 17:14:47 +02:00
Stefan Saraev
2ef5492e90 scripts/image: fix etc/os-release 2014-05-30 17:12:05 +02:00
Stephan Raue
4beff3ef6f inputproto: update to inputproto-2.3.1
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-30 17:06:05 +02:00
Stephan Raue
3cd530914d gnutls: update to gnutls-3.2.15
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-30 17:05:40 +02:00
Stephan Raue
3b493a0938 projects/RPi/patches/linux: update RPi support patch
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-30 14:46:45 +02:00
Stephan Raue
40cfd9986c config/version: set version back to devel
Signed-off-by: Stephan Raue <stephan@openelec.tv>
2014-05-28 15:24:54 +02:00
152 changed files with 11609 additions and 13284 deletions

View File

@@ -40,14 +40,14 @@ get_graphicdrivers() {
DRI_DRIVERS="$DRI_DRIVERS,i915"
XORG_DRIVERS="$XORG_DRIVERS intel"
COMPOSITE_SUPPORT="yes"
LIBVA="$LIBVA libva-driver-intel"
LIBVA="$LIBVA libva-intel-driver"
fi
if [ "$drv" = "i965" ]; then
DRI_DRIVERS="$DRI_DRIVERS,i965"
XORG_DRIVERS="$XORG_DRIVERS intel"
COMPOSITE_SUPPORT="yes"
LIBVA="$LIBVA libva-driver-intel"
LIBVA="$LIBVA libva-intel-driver"
fi
if [ "$drv" = "nouveau" ]; then

View File

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

View File

@@ -129,6 +129,7 @@ VDR_ARG="$VDR_ARG -P $PVR_PLUGIN"
cd $ADDON_DIR/config
mkdir -p $ADDON_CONFIG_DIR
mkdir -p "$VDR_VIDEO_DIR"
for dir in `find . -type d`; do
mkdir -p $ADDON_CONFIG_DIR/$dir

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="alsa-lib"
PKG_VERSION="1.0.27.2"
PKG_VERSION="1.0.28"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="alsa-utils"
PKG_VERSION="1.0.27.2"
PKG_VERSION="1.0.28"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
@@ -48,6 +48,10 @@ post_makeinstall_target() {
rm -rf $INSTALL/usr/share/sounds
rm -rf $INSTALL/usr/lib/systemd/system
# remove default udev rule to restore mixer configs, we install our own.
# so we avoid resetting our soundconfig
rm -rf $INSTALL/usr/lib/udev/rules.d/90-alsa-restore.rules
for i in aconnect alsaucm amidi aplaymidi arecord arecordmidi aseqdump aseqnet iecset; do
rm -rf $INSTALL/usr/bin/$i
done

View File

@@ -1,36 +0,0 @@
From 180283e2307b07bbd3958d24382aab8271dd4c1d Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi.hannula@iki.fi>
Date: Mon, 30 Sep 2013 23:46:50 +0300
Subject: [PATCH 1/1] amixer: actually print all TLVs in a container TLV
Due to a wrong indexing of tlv[] decode_tlv() always skips to the end of
the container TLV since the used tlv[1] contains the container TLV size
instead of the intended element size.
This causes, for example, only the first HDMI channel map TLV to be
shown.
Fix the indexing to actually use the element size.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
amixer/amixer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/amixer/amixer.c b/amixer/amixer.c
index 7727943..b83b0c3 100644
--- a/amixer/amixer.c
+++ b/amixer/amixer.c
@@ -468,7 +468,7 @@ static void decode_tlv(unsigned int spaces, unsigned int *tlv, unsigned int tlv_
return;
}
decode_tlv(spaces + 2, tlv + idx, tlv[idx+1] + 8);
- idx += 2 + (tlv[1] + sizeof(unsigned int) - 1) / sizeof(unsigned int);
+ idx += 2 + (tlv[idx+1] + sizeof(unsigned int) - 1) / sizeof(unsigned int);
}
break;
case SND_CTL_TLVT_DB_SCALE:
--
1.7.11.7

View File

@@ -1,42 +0,0 @@
From f1e991e81350e9388ab6cf04a64ac4b4389a588c Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi.hannula@iki.fi>
Date: Tue, 1 Oct 2013 23:46:53 +0300
Subject: [PATCH] amixer: fix indentation when printing container TLV contents
decode_tlv() adds indentation in the beginning, with the expectation
that the TLV will be printed on the line afterwards in a switch-case.
However, in the case of a container TLV the switch-case simply adds
another level of indentation and calls decode_tlv() for the inner TLVs.
This causes the first inner TLV to be printed with too much indentation
and double '|'.
Fix that by printing "container" and a newline for container TLVs, so
that the result is as follows:
: values=0,0,0,0,0,0,0,0
| container
| chmap-variable=FL,FR
| chmap-variable=FL,FR,LFE
| chmap-variable=FL,FR,FC
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
amixer/amixer.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/amixer/amixer.c b/amixer/amixer.c
index b83b0c3..cf82892 100644
--- a/amixer/amixer.c
+++ b/amixer/amixer.c
@@ -460,6 +460,7 @@ static void decode_tlv(unsigned int spaces, unsigned int *tlv, unsigned int tlv_
}
switch (type) {
case SND_CTL_TLVT_CONTAINER:
+ printf("container\n");
size += sizeof(unsigned int) -1;
size /= sizeof(unsigned int);
while (idx < size) {
--
1.7.11.7

View File

@@ -1,232 +0,0 @@
From a1992044d5813371ce71f5252187942f943b198d Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi.hannula@iki.fi>
Date: Tue, 12 Nov 2013 00:04:02 +0200
Subject: [PATCH] speaker-test: Fix chmapped channel selection without
specified chmap
The channel selection currently does not work properly when there is a
driver-provided non-ALSA-traditional channel map but no manual channel
map was explicitely requested with "-m".
For example, the CEA/HDMI 8ch map is FL,FR,RLC,RRC,FC,LFE,RL,RR. Note
that it is otherwise the same as the traditional ALSA channel map,
except that the traditional rear speakers are considered
rear-center speakers and the traditional side speakers are considered
rear speakers.
Speaker-test tries to play back channels in this following order:
0, /* Front Left */
4, /* Center */
1, /* Front Right */
7, /* Side Right */
3, /* Rear Right */
2, /* Rear Left */
6, /* Side Left */
5, /* LFE */
When it is the time to play back Side Left/Right, speaker-test tries to
look for SL/SR in the chmap, but doesn't find it, so it just plays back
channels 6/7 (which indeed are the side speakers, or RL/RR in this
channel map - so the correct channels are selected).
When it becomes the time to playback Rear Left/Right, speaker-test again
tries to find RL/RR in the chmap, and this time it does find them in the
chmap positions 6/7.
So the channels 6/7 are tested twice and 2/3 are never tested.
To fix this, define a generic playback order channel_order[] to be used
when the channel map is present (but not user-defined) and generate a
(speaker/playback number => channel number) mapping with the channels
ordered in the following order:
1. regular channels found in channel_order[] in the defined order,
2. channels not found in channel_order[] ordered by channel number.
3. UNKNOWN channels ordered by channel number.
4. NA channels ordered by channel number.
For channels outside the channel map just use their channel numbers (so
they will be last after all of the above).
For example, if the playback device has a fictional default channel map
of FR,FL,UNKNOWN1,FOO,BAR,RR,RL,UNKNOWN2, the playback order will be
FL,FR,RR,RL,FOO,BAR,UNKNOWN1,UNKNOWN2(,any_extra_channels).
When the channel mapping is specified manually, the specified order is
used for playback as before.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
speaker-test/speaker-test.c | 113 +++++++++++++++++++++++++++++++++++---------
1 file changed, 91 insertions(+), 22 deletions(-)
diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
index d35065f..25b08dc 100644
--- a/speaker-test/speaker-test.c
+++ b/speaker-test/speaker-test.c
@@ -88,6 +88,8 @@ enum {
#define BE_INT(v) (v)
#endif
+#define ARRAY_SIZE(x) (int)(sizeof(x)/sizeof(x[0]))
+
static char *device = "default"; /* playback device */
static snd_pcm_format_t format = SND_PCM_FORMAT_S16; /* sample format */
static unsigned int rate = 48000; /* stream rate */
@@ -110,6 +112,7 @@ static snd_pcm_t *pcm_handle = NULL;
#ifdef CONFIG_SUPPORT_CHMAP
static snd_pcm_chmap_t *channel_map;
static int channel_map_set;
+static unsigned int *ordered_channels;
#endif
static const char *const channel_name[MAX_CHANNELS] = {
@@ -156,36 +159,94 @@ static const int channels8[] = {
5, /* LFE */
};
-static int get_mapped_channel(int chn)
-{
#ifdef CONFIG_SUPPORT_CHMAP
- static const int maps[MAX_CHANNELS] = {
- SND_CHMAP_FL,
- SND_CHMAP_FR,
- SND_CHMAP_RL,
- SND_CHMAP_RR,
- SND_CHMAP_FC,
- SND_CHMAP_LFE,
- SND_CHMAP_SL,
- SND_CHMAP_SR,
- };
+/* circular clockwise and bottom-to-top order */
+static const int channel_order[] = {
+ [SND_CHMAP_FLW] = 10,
+ [SND_CHMAP_FL] = 20,
+ [SND_CHMAP_TFL] = 30,
+ [SND_CHMAP_FLC] = 40,
+ [SND_CHMAP_TFLC] = 50,
+ [SND_CHMAP_FC] = 60,
+ [SND_CHMAP_TFC] = 70,
+ [SND_CHMAP_FRC] = 80,
+ [SND_CHMAP_TFRC] = 90,
+ [SND_CHMAP_FR] = 100,
+ [SND_CHMAP_TFR] = 110,
+ [SND_CHMAP_FRW] = 120,
+ [SND_CHMAP_SR] = 130,
+ [SND_CHMAP_TSR] = 140,
+ [SND_CHMAP_RR] = 150,
+ [SND_CHMAP_TRR] = 160,
+ [SND_CHMAP_RRC] = 170,
+ [SND_CHMAP_RC] = 180,
+ [SND_CHMAP_TRC] = 190,
+ [SND_CHMAP_RLC] = 200,
+ [SND_CHMAP_RL] = 210,
+ [SND_CHMAP_TRL] = 220,
+ [SND_CHMAP_SL] = 230,
+ [SND_CHMAP_TSL] = 240,
+ [SND_CHMAP_BC] = 250,
+ [SND_CHMAP_TC] = 260,
+ [SND_CHMAP_LLFE] = 270,
+ [SND_CHMAP_LFE] = 280,
+ [SND_CHMAP_RLFE] = 290,
+ /* not in table = 10000 */
+ [SND_CHMAP_UNKNOWN] = 20000,
+ [SND_CHMAP_NA] = 30000,
+};
- if (channel_map && maps[chn]) {
- int i;
- for (i = 0; i < channel_map->channels; i++) {
- if (channel_map->pos[i] == maps[chn])
- return i;
- }
+static int chpos_cmp(const void *chnum1p, const void *chnum2p)
+{
+ int chnum1 = *(int *)chnum1p;
+ int chnum2 = *(int *)chnum2p;
+ int chpos1 = channel_map->pos[chnum1];
+ int chpos2 = channel_map->pos[chnum2];
+ int weight1 = 10000;
+ int weight2 = 10000;
+
+ if (chpos1 < ARRAY_SIZE(channel_order) && channel_order[chpos1])
+ weight1 = channel_order[chpos1];
+ if (chpos2 < ARRAY_SIZE(channel_order) && channel_order[chpos2])
+ weight2 = channel_order[chpos2];
+
+ if (weight1 == weight2) {
+ /* order by channel number if both have the same position (e.g. UNKNOWN)
+ * or if neither is in channel_order[] */
+ return chnum1 - chnum2;
}
-#endif
- return chn;
+
+ /* order according to channel_order[] */
+ return weight1 - weight2;
+}
+
+static int *order_channels(void)
+{
+ /* create a (playback order => channel number) table with channels ordered
+ * according to channel_order[] values */
+ int i;
+ int *ordered_chs;
+
+ ordered_chs = calloc(channel_map->channels, sizeof(*ordered_chs));
+ if (!ordered_chs)
+ return NULL;
+
+ for (i = 0; i < channel_map->channels; i++)
+ ordered_chs[i] = i;
+
+ qsort(ordered_chs, channel_map->channels, sizeof(*ordered_chs), chpos_cmp);
+
+ return ordered_chs;
}
+#endif
static int get_speaker_channel(int chn)
{
#ifdef CONFIG_SUPPORT_CHMAP
- if (channel_map_set)
+ if (channel_map_set || (ordered_channels && chn >= channel_map->channels))
return chn;
+ if (ordered_channels)
+ return ordered_channels[chn];
#endif
switch (channels) {
@@ -200,7 +261,7 @@ static int get_speaker_channel(int chn)
break;
}
- return get_mapped_channel(chn);
+ return chn;
}
static const char *get_channel_name(int chn)
@@ -611,6 +672,11 @@ static int config_chmap(snd_pcm_t *handle, const char *mapstr)
}
channel_map = snd_pcm_get_chmap(handle);
+
+ /* create a channel order table for default layouts */
+ if (channel_map)
+ ordered_channels = order_channels();
+
return 0;
}
#endif
@@ -1230,6 +1296,9 @@ int main(int argc, char *argv[]) {
free(frames);
+#ifdef CONFIG_SUPPORT_CHMAP
+ free(ordered_channels);
+#endif
return prg_exit(EXIT_SUCCESS);
}
--
1.7.11.7

View File

@@ -1,44 +0,0 @@
From 5b0c6da0d8166cd404379740c5f75fda44ca5806 Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi.hannula@iki.fi>
Date: Sun, 10 Nov 2013 20:29:18 +0200
Subject: [PATCH] speaker-test: Always show chmap channel names if available
Currently speaker-test only uses channel names retrieved by
snd_pcm_chmap_long_name() when a channel map has been manually set.
However, the device may provide a default (or fixed) channel map that
differs from the traditional ALSA map, in which case wrong channel names
are shown.
Fix that by always using the name from the channel map when a channel
map is present.
Note that the names retrieved by snd_pcm_chmap_long_name() are not
currently localized via gettext.
Also note that Linux kernel HDMI driver reported wrong default channel
maps before 56cac413dd6d43af8355f5d1f90a199b540f73fc ("ALSA: hda - hdmi:
Fix reported channel map on common default layouts").
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
speaker-test/speaker-test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
index 25b08dc..101bb0d 100644
--- a/speaker-test/speaker-test.c
+++ b/speaker-test/speaker-test.c
@@ -267,7 +267,7 @@ static int get_speaker_channel(int chn)
static const char *get_channel_name(int chn)
{
#ifdef CONFIG_SUPPORT_CHMAP
- if (channel_map_set && chn < channel_map->channels) {
+ if (channel_map && chn < channel_map->channels) {
const char *name = snd_pcm_chmap_long_name(channel_map->pos[chn]);
return name ? name : "Unknown";
}
--
1.7.11.7

View File

@@ -1,41 +0,0 @@
From 58752c3ae32e03d676fa225c99c9a8dde9de39ed Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi.hannula@iki.fi>
Date: Sun, 10 Nov 2013 20:29:19 +0200
Subject: [PATCH] speaker-test: Show out-of-chmap channels as Unknown
Currently speaker-test falls back to ALSA default channel names for
channels out-of-chmap.
This causes e.g. the 4th channel of
$ speaker-test -c4 -Dhdmi -m "FR,FL,FC"
to be shown as "Rear Right".
Change the code to show such channels as Unknown instead, similar to
when snd_pcm_chmap_long_name() does not know the name.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
speaker-test/speaker-test.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/speaker-test/speaker-test.c b/speaker-test/speaker-test.c
index 101bb0d..261f399 100644
--- a/speaker-test/speaker-test.c
+++ b/speaker-test/speaker-test.c
@@ -267,8 +267,10 @@ static int get_speaker_channel(int chn)
static const char *get_channel_name(int chn)
{
#ifdef CONFIG_SUPPORT_CHMAP
- if (channel_map && chn < channel_map->channels) {
- const char *name = snd_pcm_chmap_long_name(channel_map->pos[chn]);
+ if (channel_map) {
+ const char *name = NULL;
+ if (chn < channel_map->channels)
+ name = snd_pcm_chmap_long_name(channel_map->pos[chn]);
return name ? name : "Unknown";
}
#endif
--
1.7.11.7

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="lzo"
PKG_VERSION="2.06"
PKG_VERSION="2.08"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="sqlite"
PKG_VERSION="autoconf-3080403"
PKG_VERSION="autoconf-3080500"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="PublicDomain"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="cloog"
PKG_VERSION="0.18.0"
PKG_VERSION="0.18.2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"

View File

@@ -0,0 +1,26 @@
diff -Naur cloog-0.18.2/Makefile.am cloog-0.18.2.patch/Makefile.am
--- cloog-0.18.2/Makefile.am 2013-12-18 13:27:49.000000000 +0100
+++ cloog-0.18.2.patch/Makefile.am 2014-06-22 17:51:19.285392908 +0200
@@ -147,9 +147,7 @@
@test -z "$(pkgconfig_libdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfig_libdir)"
$(INSTALL_DATA) $(pkgconfig_libfile) "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)"
@test -z "$(DESTDIR)$(libdir)/isl" || $(mkdir_p) "$(DESTDIR)$(libdir)/isl"
- $(INSTALL_DATA) "$(top_srcdir)/cmake/isl-config.cmake" "$(DESTDIR)$(libdir)/isl/"
@test -z "$(DESTDIR)$(libdir)/$(PACKAGE_NAME)" || $(mkdir_p) "$(DESTDIR)$(libdir)/$(PACKAGE_NAME)"
- $(INSTALL_DATA) "$(top_srcdir)/cmake/cloog-isl-config.cmake" "$(DESTDIR)$(libdir)/$(PACKAGE_NAME)/"
uninstall-local:
rm -f "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)"
diff -Naur cloog-0.18.2/Makefile.in cloog-0.18.2.patch/Makefile.in
--- cloog-0.18.2/Makefile.in 2013-12-18 13:36:08.000000000 +0100
+++ cloog-0.18.2.patch/Makefile.in 2014-06-22 17:51:27.580413087 +0200
@@ -1342,9 +1342,7 @@
@test -z "$(pkgconfig_libdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfig_libdir)"
$(INSTALL_DATA) $(pkgconfig_libfile) "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)"
@test -z "$(DESTDIR)$(libdir)/isl" || $(mkdir_p) "$(DESTDIR)$(libdir)/isl"
- $(INSTALL_DATA) "$(top_srcdir)/cmake/isl-config.cmake" "$(DESTDIR)$(libdir)/isl/"
@test -z "$(DESTDIR)$(libdir)/$(PACKAGE_NAME)" || $(mkdir_p) "$(DESTDIR)$(libdir)/$(PACKAGE_NAME)"
- $(INSTALL_DATA) "$(top_srcdir)/cmake/cloog-isl-config.cmake" "$(DESTDIR)$(libdir)/$(PACKAGE_NAME)/"
uninstall-local:
rm -f "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="dbus-glib"
PKG_VERSION="0.100.2"
PKG_VERSION="0.102"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -1,12 +0,0 @@
diff -Naur dbus-glib-0.100-old/configure.ac dbus-glib-0.100-new/configure.ac
--- dbus-glib-0.100-old/configure.ac 2012-06-25 09:26:39.000000000 -0700
+++ dbus-glib-0.100-new/configure.ac 2012-12-29 08:54:04.000000000 -0800
@@ -8,7 +8,7 @@
AM_INIT_AUTOMAKE([1.9])
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS(config.h)
# Honor aclocal flags
ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="file"
PKG_VERSION="5.18"
PKG_VERSION="5.19"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="BSD"

View File

@@ -32,6 +32,8 @@ PKG_LONGDESC="This is the GNU gettext package. It is interesting for authors or
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
PKG_CONFIGURE_SCRIPT="gettext-tools/configure"
PKG_CONFIGURE_OPTS_HOST="--enable-static --disable-shared \
--disable-rpath \
--with-gnu-ld \

View File

@@ -0,0 +1,24 @@
diff -Naur gettext-0.19.1/gettext-tools/Makefile.am gettext-0.19.1.patch/gettext-tools/Makefile.am
--- gettext-0.19.1/gettext-tools/Makefile.am 2014-05-01 11:37:33.000000000 +0200
+++ gettext-0.19.1.patch/gettext-tools/Makefile.am 2014-06-23 16:06:15.225426222 +0200
@@ -19,7 +19,7 @@
AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies
ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4
-SUBDIRS = doc intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests examples
+SUBDIRS = intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests
EXTRA_DIST = misc/DISCLAIM
MOSTLYCLEANFILES = core *.stackdump
diff -Naur gettext-0.19.1/gettext-tools/Makefile.in gettext-0.19.1.patch/gettext-tools/Makefile.in
--- gettext-0.19.1/gettext-tools/Makefile.in 2014-06-10 07:42:48.000000000 +0200
+++ gettext-0.19.1.patch/gettext-tools/Makefile.in 2014-06-23 16:06:32.453461116 +0200
@@ -1556,7 +1556,7 @@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies
ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4
-SUBDIRS = doc intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests examples
+SUBDIRS = intl gnulib-lib libgrep src libgettextpo po projects styles misc man m4 tests gnulib-tests
# Allow users to use "gnulib-tool --update".

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libffi"
PKG_VERSION="3.0.11"
PKG_VERSION="3.1"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -1,22 +0,0 @@
diff -Naur libffi-3.0.10/include/Makefile.am libffi-3.0.10.patch/include/Makefile.am
--- libffi-3.0.10/include/Makefile.am 2011-08-22 20:38:12.000000000 +0200
+++ libffi-3.0.10.patch/include/Makefile.am 2011-11-04 09:26:38.587669344 +0100
@@ -5,5 +5,5 @@
DISTCLEANFILES=ffitarget.h
EXTRA_DIST=ffi.h.in ffi_common.h
-includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
+includesdir = $(includedir)/@PACKAGE_NAME@
nodist_includes_HEADERS = ffi.h ffitarget.h
diff -Naur libffi-3.0.10/libffi.pc.in libffi-3.0.10.patch/libffi.pc.in
--- libffi-3.0.10/libffi.pc.in 2011-08-22 20:38:12.000000000 +0200
+++ libffi-3.0.10.patch/libffi.pc.in 2011-11-04 09:25:20.218682315 +0100
@@ -1,7 +1,7 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
-includedir=${libdir}/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
+includedir=@includedir@/@PACKAGE_NAME@
Name: @PACKAGE_NAME@
Description: Library supporting Foreign Function Interfaces

View File

@@ -0,0 +1,50 @@
From 102c02de867bfe831b5366c89d66bcf170db962e Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Thu, 7 Feb 2013 22:26:56 +0100
Subject: [PATCH] Fix installation location of libffi
The libffi is currently declared as toolexeclib_LTLIBRARIES. In many
cases, toolexeclib libraries will be installed in /usr/lib, so it
doesn't make any difference.
However, with multilib toolchains, they get installed in a
subdirectory of /usr/lib/. For example, with a Sourcery CodeBench
PowerPC toolchain, if the e500mc multilib variant is used, the libffi
library gets installed in /usr/lib/te500mc/. This is due to the
following code in the configure script:
multi_os_directory=`$CC -print-multi-os-directory`
case $multi_os_directory in
.) ;; # Avoid trailing /.
*) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
esac
Once the library is installed in /usr/lib/te500mc/, nothing works
because this installation location is inconsistent with the
installation location declared in libffi.pc.
So, instead of using this bizarre toolexeclib_LTLIBRARIES, simply use
the more standard lib_LTLIBRARIES, which ensures that the libffi
library is always installed in /usr/lib.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index 6f669ca..b60bcc1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -93,7 +93,7 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS)
MAKEOVERRIDES=
-toolexeclib_LTLIBRARIES = libffi.la
+lib_LTLIBRARIES = libffi.la
noinst_LTLIBRARIES = libffi_convenience.la
libffi_la_SOURCES = src/prep_cif.c src/types.c \
--
1.7.9.5

View File

@@ -0,0 +1,23 @@
diff -Naur libffi-3.1/include/Makefile.am libffi-3.1.patch/include/Makefile.am
--- libffi-3.1/include/Makefile.am 2014-04-25 19:45:13.000000000 +0200
+++ libffi-3.1.patch/include/Makefile.am 2014-07-03 14:30:29.019161705 +0200
@@ -5,5 +5,6 @@
DISTCLEANFILES=ffitarget.h
EXTRA_DIST=ffi.h.in ffi_common.h
-includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
+includesdir = $(includedir)/@PACKAGE_NAME@
+
nodist_includes_HEADERS = ffi.h ffitarget.h
diff -Naur libffi-3.1/libffi.pc.in libffi-3.1.patch/libffi.pc.in
--- libffi-3.1/libffi.pc.in 2014-04-25 19:45:13.000000000 +0200
+++ libffi-3.1.patch/libffi.pc.in 2014-07-03 14:30:56.047220839 +0200
@@ -2,7 +2,7 @@
exec_prefix=@exec_prefix@
libdir=@libdir@
toolexeclibdir=@toolexeclibdir@
-includedir=${libdir}/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
+includedir=@includedir@/@PACKAGE_NAME@
Name: @PACKAGE_NAME@
Description: Library supporting Foreign Function Interfaces

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="mpc"
PKG_VERSION="1.0.1"
PKG_VERSION="1.0.2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="LGPL"

View File

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

View File

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

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="libpng"
PKG_VERSION="1.6.10"
PKG_VERSION="1.6.12"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"

View File

@@ -52,6 +52,8 @@ BOOTSTRAP_CONFIGURE_OPTS="--host=$HOST_NAME \
--disable-libada \
--disable-libmudflap \
--disable-libatomic \
--disable-libitm \
--disable-libsanitizer \
--enable-gold \
--enable-ld=default \
--enable-plugin \
@@ -68,7 +70,8 @@ BOOTSTRAP_CONFIGURE_OPTS="--host=$HOST_NAME \
--disable-decimal-float \
$GCC_OPTS \
--disable-nls \
--disable-cloog-version-check"
--disable-cloog-version-check \
--enable-checking=release"
PKG_CONFIGURE_OPTS_HOST="--target=$TARGET_NAME \
--with-sysroot=$SYSROOT_PREFIX \
@@ -96,14 +99,17 @@ PKG_CONFIGURE_OPTS_HOST="--target=$TARGET_NAME \
--enable-cloog-backend=isl \
--enable-tls \
--enable-shared \
--disable-static \
--enable-c99 \
--enable-long-long \
--enable-threads=posix \
--disable-libstdcxx-pch \
--enable-libstdcxx-time \
--enable-clocale=gnu \
$GCC_OPTS \
--disable-nls \
--disable-cloog-version-check"
--disable-cloog-version-check \
--enable-checking=release"
pre_configure_bootstrap() {
setup_toolchain host

View File

@@ -0,0 +1,100 @@
From 0c5e8ed4943e302f6154e07368c0831e14c24187 Mon Sep 17 00:00:00 2001
From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 13 May 2014 20:26:30 +0000
Subject: [PATCH] PR tree-optimization/60902
* tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts_at_dest): Make sure to
invalidate outputs from statements that do not produce useful
outputs for threading.
PR tree-optimization/60902
* gcc.target/i386/pr60902.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@210398 138bc75d-0d04-0410-961f-82ee72b054a4
---
gcc/testsuite/gcc.target/i386/pr60902.c | 32 +++++++++++++++++++++++++++++++
gcc/tree-ssa-threadedge.c | 29 +++++++++++++++++++++++++++-
4 files changed, 79 insertions(+), 1 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/i386/pr60902.c
diff --git a/gcc/testsuite/gcc.target/i386/pr60902.c b/gcc/testsuite/gcc.target/i386/pr60902.c
new file mode 100644
index 0000000..b81dcd7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr60902.c
@@ -0,0 +1,32 @@
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+extern void abort ();
+extern void exit (int);
+
+int x;
+
+foo()
+{
+ static int count;
+ count++;
+ if (count > 1)
+ abort ();
+}
+
+static inline int
+frob ()
+{
+ int a;
+ __asm__ ("mov %1, %0\n\t" : "=r" (a) : "m" (x));
+ x++;
+ return a;
+}
+
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 10 && frob () == 0; i++)
+ foo();
+ exit (0);
+}
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c
index c447b72..8a0103b 100644
--- a/gcc/tree-ssa-threadedge.c
+++ b/gcc/tree-ssa-threadedge.c
@@ -387,7 +387,34 @@ record_temporary_equivalences_from_stmts_at_dest (edge e,
&& (gimple_code (stmt) != GIMPLE_CALL
|| gimple_call_lhs (stmt) == NULL_TREE
|| TREE_CODE (gimple_call_lhs (stmt)) != SSA_NAME))
- continue;
+ {
+ /* STMT might still have DEFS and we need to invalidate any known
+ equivalences for them.
+
+ Consider if STMT is a GIMPLE_ASM with one or more outputs that
+ feeds a conditional inside a loop. We might derive an equivalence
+ due to the conditional. */
+ tree op;
+ ssa_op_iter iter;
+
+ if (backedge_seen)
+ FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_ALL_DEFS)
+ {
+ /* This call only invalidates equivalences created by
+ PHI nodes. This is by design to keep the cost of
+ of invalidation reasonable. */
+ invalidate_equivalences (op, stack, src_map, dst_map);
+
+ /* However, conditionals can imply values for real
+ operands as well. And those won't be recorded in the
+ maps. In fact, those equivalences may be recorded totally
+ outside the threading code. We can just create a new
+ temporary NULL equivalence here. */
+ record_temporary_equivalence (op, NULL_TREE, stack);
+ }
+
+ continue;
+ }
/* The result of __builtin_object_size depends on all the arguments
of a phi node. Temporarily using only one edge produces invalid
--
1.7.1

View File

@@ -0,0 +1,30 @@
From 4de76fa443ab107e4542bbdba242f0ed467cfecf Mon Sep 17 00:00:00 2001
From: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 13 May 2014 20:26:41 +0000
Subject: [PATCH] PR tree-optimization/60902
* tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts_at_dest): Only iterate
over real defs when invalidating outputs from statements that do not
produce useful outputs for threading.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@210399 138bc75d-0d04-0410-961f-82ee72b054a4
---
gcc/tree-ssa-threadedge.c | 2 +-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c
index 8a0103b..7621348 100644
--- a/gcc/tree-ssa-threadedge.c
+++ b/gcc/tree-ssa-threadedge.c
@@ -398,7 +398,7 @@ record_temporary_equivalences_from_stmts_at_dest (edge e,
ssa_op_iter iter;
if (backedge_seen)
- FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_ALL_DEFS)
+ FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_DEF)
{
/* This call only invalidates equivalences created by
PHI nodes. This is by design to keep the cost of
--
1.7.1

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="llvm"
PKG_VERSION="3.4.1"
PKG_VERSION="3.4.2"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -1,6 +1,6 @@
diff -Naur RTL8192CU-v4.0.2_9000.20130911/os_dep/linux/usb_intf.c RTL8192CU-v4.0.2_9000.20130911.patch/os_dep/linux/usb_intf.c
--- RTL8192CU-v4.0.2_9000.20130911/os_dep/linux/usb_intf.c 2013-09-11 05:56:55.000000000 +0200
+++ RTL8192CU-v4.0.2_9000.20130911.patch/os_dep/linux/usb_intf.c 2014-04-09 02:51:25.318208735 +0200
+++ RTL8192CU-v4.0.2_9000.20130911.patch/os_dep/linux/usb_intf.c 2014-06-08 15:44:13.239381855 +0200
@@ -96,6 +96,7 @@
{USB_DEVICE(0x2019, 0xED17)},/* PCI - Edimax */ \
{USB_DEVICE(0x0DF6, 0x0052)},/* Sitecom - Edimax */ \
@@ -9,8 +9,11 @@ diff -Naur RTL8192CU-v4.0.2_9000.20130911/os_dep/linux/usb_intf.c RTL8192CU-v4.0
{USB_DEVICE(0x07B8, 0x8189)},/* Abocom - Abocom */ \
{USB_DEVICE(0x0EB0, 0x9071)},/* NO Brand - Etop */ \
{USB_DEVICE(0x06F8, 0xE033)},/* Hercules - Edimax */ \
@@ -146,6 +147,7 @@
@@ -144,8 +145,10 @@
{USB_DEVICE(0x07B8, 0x8178)},/* Abocom - Abocom */ \
{USB_DEVICE(0x07AA, 0x0056)},/* ATKK - Gemtek */ \
{USB_DEVICE(0x4855, 0x0091)},/* - Feixun */ \
+ {USB_DEVICE(0x050D, 0x11F2)},/* Belkin - Edimax */ \
{USB_DEVICE(0x050D, 0x2102)},/* Belkin - Sercomm */ \
{USB_DEVICE(0x050D, 0x2103)},/* Belkin - Edimax */ \
+ {USB_DEVICE(0x050D, 0x21F2)},/* Belkin - Edimax */ \

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="misc-firmware"
PKG_VERSION="0.0.9"
PKG_VERSION="0.0.11"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Free-to-use"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="wlan-firmware"
PKG_VERSION="0.0.21"
PKG_VERSION="0.0.23"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="Free-to-use"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

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

View File

@@ -0,0 +1,12 @@
diff -Naur linux-3.14.8/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-3.14.8.patch/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
--- linux-3.14.8/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2014-06-16 22:41:19.000000000 +0200
+++ linux-3.14.8.patch/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2014-06-17 03:34:54.230287375 +0200
@@ -1441,6 +1441,8 @@
&rtl2832u_props, "Sveon STV20", NULL) },
{ DVB_USB_DEVICE(USB_VID_KWORLD_2, USB_PID_SVEON_STV27,
&rtl2832u_props, "Sveon STV27", NULL) },
+ { DVB_USB_DEVICE(USB_VID_GTEK, 0xa803,
+ &rtl2832u_props, "Realtek RTL2832U reference design", NULL) },
/* RTL2832P devices: */
{ DVB_USB_DEVICE(USB_VID_HANFTEK, 0x0131,

View File

@@ -0,0 +1,97 @@
diff --git a/drivers/media/dvb-frontends/cxd2820r.h b/drivers/media/dvb-frontends/cxd2820r.h
index 82b3d93..6095dbc 100644
--- a/drivers/media/dvb-frontends/cxd2820r.h
+++ b/drivers/media/dvb-frontends/cxd2820r.h
@@ -52,6 +52,12 @@ struct cxd2820r_config {
*/
u8 ts_mode;
+ /* TS clock inverted.
+ * Default: 0
+ * Values: 0, 1
+ */
+ bool ts_clock_inv;
+
/* IF AGC polarity.
* Default: 0
* Values: 0, 1
diff --git a/drivers/media/dvb-frontends/cxd2820r_c.c b/drivers/media/dvb-frontends/cxd2820r_c.c
index 5c6ab49..0f4657e 100644
--- a/drivers/media/dvb-frontends/cxd2820r_c.c
+++ b/drivers/media/dvb-frontends/cxd2820r_c.c
@@ -45,6 +45,7 @@ int cxd2820r_set_frontend_c(struct dvb_frontend *fe)
{ 0x1008b, 0x07, 0xff },
{ 0x1001f, priv->cfg.if_agc_polarity << 7, 0x80 },
{ 0x10070, priv->cfg.ts_mode, 0xff },
+ { 0x10071, !priv->cfg.ts_clock_inv << 4, 0x10 },
};
dev_dbg(&priv->i2c->dev, "%s: frequency=%d symbol_rate=%d\n", __func__,
diff --git a/drivers/media/dvb-frontends/cxd2820r_t.c b/drivers/media/dvb-frontends/cxd2820r_t.c
index fa184ca..9b5a45b 100644
--- a/drivers/media/dvb-frontends/cxd2820r_t.c
+++ b/drivers/media/dvb-frontends/cxd2820r_t.c
@@ -46,6 +46,7 @@ int cxd2820r_set_frontend_t(struct dvb_frontend *fe)
{ 0x00088, 0x01, 0xff },
{ 0x00070, priv->cfg.ts_mode, 0xff },
+ { 0x00071, !priv->cfg.ts_clock_inv << 4, 0x10 },
{ 0x000cb, priv->cfg.if_agc_polarity << 6, 0x40 },
{ 0x000a5, 0x00, 0x01 },
{ 0x00082, 0x20, 0x60 },
diff --git a/drivers/media/dvb-frontends/cxd2820r_t2.c b/drivers/media/dvb-frontends/cxd2820r_t2.c
index 2ba130e..9c0c4f4 100644
--- a/drivers/media/dvb-frontends/cxd2820r_t2.c
+++ b/drivers/media/dvb-frontends/cxd2820r_t2.c
@@ -47,6 +47,7 @@ int cxd2820r_set_frontend_t2(struct dvb_frontend *fe)
{ 0x02083, 0x0a, 0xff },
{ 0x020cb, priv->cfg.if_agc_polarity << 6, 0x40 },
{ 0x02070, priv->cfg.ts_mode, 0xff },
+ { 0x02071, !priv->cfg.ts_clock_inv << 6, 0x40 },
{ 0x020b5, priv->cfg.spec_inv << 4, 0x10 },
{ 0x02567, 0x07, 0x0f },
{ 0x02569, 0x03, 0x03 },
diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c
index ae0f56a..7135a3e 100644
--- a/drivers/media/usb/dvb-usb/dw2102.c
+++ b/drivers/media/usb/dvb-usb/dw2102.c
@@ -1109,6 +1109,7 @@ static struct ds3000_config su3000_ds3000_config = {
static struct cxd2820r_config cxd2820r_config = {
.i2c_address = 0x6c, /* (0xd8 >> 1) */
.ts_mode = 0x38,
+ .ts_clock_inv = 1,
};
static struct tda18271_config tda18271_config = {
@@ -1387,20 +1388,27 @@ static int su3000_frontend_attach(struct dvb_usb_adapter *d)
static int t220_frontend_attach(struct dvb_usb_adapter *d)
{
- u8 obuf[3] = { 0xe, 0x80, 0 };
+ u8 obuf[3] = { 0xe, 0x87, 0 };
u8 ibuf[] = { 0 };
if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
err("command 0x0e transfer failed.");
obuf[0] = 0xe;
- obuf[1] = 0x83;
+ obuf[1] = 0x86;
+ obuf[2] = 1;
+
+ if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
+ err("command 0x0e transfer failed.");
+
+ obuf[0] = 0xe;
+ obuf[1] = 0x80;
obuf[2] = 0;
if (dvb_usb_generic_rw(d->dev, obuf, 3, ibuf, 1, 0) < 0)
err("command 0x0e transfer failed.");
- msleep(100);
+ msleep(50);
obuf[0] = 0xe;
obuf[1] = 0x80;

View File

@@ -597,348 +597,3 @@ index 0c26b3c..12a01e9 100644
--
1.9.1
From 6e26c28955078c20a78a41e03911d67b5f85bd55 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
Date: Wed, 23 Apr 2014 20:46:06 +0200
Subject: [PATCH 6/6] drm/radeon: use pflip irq on R600+
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Christian König <christian.koenig@amd.com>
---
drivers/gpu/drm/radeon/cik.c | 76 +++++++++++++++++++++++++++++++++
drivers/gpu/drm/radeon/cikd.h | 9 ++++
drivers/gpu/drm/radeon/evergreen.c | 28 +++++++++---
drivers/gpu/drm/radeon/r600.c | 10 +++--
drivers/gpu/drm/radeon/radeon.h | 6 +++
drivers/gpu/drm/radeon/radeon_display.c | 4 ++
drivers/gpu/drm/radeon/si.c | 28 +++++++++---
7 files changed, 144 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
index bbb1784..e29c9b2 100644
--- a/drivers/gpu/drm/radeon/cik.c
+++ b/drivers/gpu/drm/radeon/cik.c
@@ -6662,6 +6662,19 @@ static void cik_disable_interrupt_state(struct radeon_device *rdev)
WREG32(LB_INTERRUPT_MASK + EVERGREEN_CRTC4_REGISTER_OFFSET, 0);
WREG32(LB_INTERRUPT_MASK + EVERGREEN_CRTC5_REGISTER_OFFSET, 0);
}
+ /* pflip */
+ if (rdev->num_crtc >= 2) {
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, 0);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, 0);
+ }
+ if (rdev->num_crtc >= 4) {
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, 0);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, 0);
+ }
+ if (rdev->num_crtc >= 6) {
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, 0);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, 0);
+ }
/* dac hotplug */
WREG32(DAC_AUTODETECT_INT_CONTROL, 0);
@@ -7018,6 +7031,25 @@ int cik_irq_set(struct radeon_device *rdev)
WREG32(LB_INTERRUPT_MASK + EVERGREEN_CRTC5_REGISTER_OFFSET, crtc6);
}
+ if (rdev->num_crtc >= 2) {
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ }
+ if (rdev->num_crtc >= 4) {
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ }
+ if (rdev->num_crtc >= 6) {
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ }
+
WREG32(DC_HPD1_INT_CONTROL, hpd1);
WREG32(DC_HPD2_INT_CONTROL, hpd2);
WREG32(DC_HPD3_INT_CONTROL, hpd3);
@@ -7054,6 +7086,29 @@ static inline void cik_irq_ack(struct radeon_device *rdev)
rdev->irq.stat_regs.cik.disp_int_cont5 = RREG32(DISP_INTERRUPT_STATUS_CONTINUE5);
rdev->irq.stat_regs.cik.disp_int_cont6 = RREG32(DISP_INTERRUPT_STATUS_CONTINUE6);
+ rdev->irq.stat_regs.cik.d1grph_int = RREG32(GRPH_INT_STATUS +
+ EVERGREEN_CRTC0_REGISTER_OFFSET);
+ rdev->irq.stat_regs.cik.d2grph_int = RREG32(GRPH_INT_STATUS +
+ EVERGREEN_CRTC1_REGISTER_OFFSET);
+ if (rdev->num_crtc >= 4) {
+ rdev->irq.stat_regs.cik.d3grph_int = RREG32(GRPH_INT_STATUS +
+ EVERGREEN_CRTC2_REGISTER_OFFSET);
+ rdev->irq.stat_regs.cik.d4grph_int = RREG32(GRPH_INT_STATUS +
+ EVERGREEN_CRTC3_REGISTER_OFFSET);
+ }
+ if (rdev->num_crtc >= 6) {
+ rdev->irq.stat_regs.cik.d5grph_int = RREG32(GRPH_INT_STATUS +
+ EVERGREEN_CRTC4_REGISTER_OFFSET);
+ rdev->irq.stat_regs.cik.d6grph_int = RREG32(GRPH_INT_STATUS +
+ EVERGREEN_CRTC5_REGISTER_OFFSET);
+ }
+
+ if (rdev->irq.stat_regs.cik.d1grph_int & GRPH_PFLIP_INT_OCCURRED)
+ WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC0_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_CLEAR);
+ if (rdev->irq.stat_regs.cik.d2grph_int & GRPH_PFLIP_INT_OCCURRED)
+ WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC1_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_CLEAR);
if (rdev->irq.stat_regs.cik.disp_int & LB_D1_VBLANK_INTERRUPT)
WREG32(LB_VBLANK_STATUS + EVERGREEN_CRTC0_REGISTER_OFFSET, VBLANK_ACK);
if (rdev->irq.stat_regs.cik.disp_int & LB_D1_VLINE_INTERRUPT)
@@ -7064,6 +7119,12 @@ static inline void cik_irq_ack(struct radeon_device *rdev)
WREG32(LB_VLINE_STATUS + EVERGREEN_CRTC1_REGISTER_OFFSET, VLINE_ACK);
if (rdev->num_crtc >= 4) {
+ if (rdev->irq.stat_regs.cik.d3grph_int & GRPH_PFLIP_INT_OCCURRED)
+ WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC2_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_CLEAR);
+ if (rdev->irq.stat_regs.cik.d4grph_int & GRPH_PFLIP_INT_OCCURRED)
+ WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC3_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_CLEAR);
if (rdev->irq.stat_regs.cik.disp_int_cont2 & LB_D3_VBLANK_INTERRUPT)
WREG32(LB_VBLANK_STATUS + EVERGREEN_CRTC2_REGISTER_OFFSET, VBLANK_ACK);
if (rdev->irq.stat_regs.cik.disp_int_cont2 & LB_D3_VLINE_INTERRUPT)
@@ -7075,6 +7136,12 @@ static inline void cik_irq_ack(struct radeon_device *rdev)
}
if (rdev->num_crtc >= 6) {
+ if (rdev->irq.stat_regs.cik.d5grph_int & GRPH_PFLIP_INT_OCCURRED)
+ WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC4_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_CLEAR);
+ if (rdev->irq.stat_regs.cik.d6grph_int & GRPH_PFLIP_INT_OCCURRED)
+ WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC5_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_CLEAR);
if (rdev->irq.stat_regs.cik.disp_int_cont4 & LB_D5_VBLANK_INTERRUPT)
WREG32(LB_VBLANK_STATUS + EVERGREEN_CRTC4_REGISTER_OFFSET, VBLANK_ACK);
if (rdev->irq.stat_regs.cik.disp_int_cont4 & LB_D5_VLINE_INTERRUPT)
@@ -7426,6 +7493,15 @@ restart_ih:
break;
}
break;
+ case 8: /* D1 page flip */
+ case 9: /* D2 page flip */
+ case 10: /* D3 page flip */
+ case 11: /* D4 page flip */
+ case 12: /* D5 page flip */
+ case 13: /* D6 page flip */
+ DRM_DEBUG("IH: D%d flip\n", src_id - 7);
+ radeon_crtc_handle_flip(rdev, src_id - 8);
+ break;
case 42: /* HPD hotplug */
switch (src_data) {
case 0:
diff --git a/drivers/gpu/drm/radeon/cikd.h b/drivers/gpu/drm/radeon/cikd.h
index 98bae9d7..d1b2c71 100644
--- a/drivers/gpu/drm/radeon/cikd.h
+++ b/drivers/gpu/drm/radeon/cikd.h
@@ -882,6 +882,15 @@
# define DC_HPD6_RX_INTERRUPT (1 << 18)
#define DISP_INTERRUPT_STATUS_CONTINUE6 0x6780
+/* 0x6858, 0x7458, 0x10058, 0x10c58, 0x11858, 0x12458 */
+#define GRPH_INT_STATUS 0x6858
+# define GRPH_PFLIP_INT_OCCURRED (1 << 0)
+# define GRPH_PFLIP_INT_CLEAR (1 << 8)
+/* 0x685c, 0x745c, 0x1005c, 0x10c5c, 0x1185c, 0x1245c */
+#define GRPH_INT_CONTROL 0x685c
+# define GRPH_PFLIP_INT_MASK (1 << 0)
+# define GRPH_PFLIP_INT_TYPE (1 << 8)
+
#define DAC_AUTODETECT_INT_CONTROL 0x67c8
#define DC_HPD1_INT_STATUS 0x601c
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index 27b0ff1..8ffee2b 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -4375,7 +4375,6 @@ int evergreen_irq_set(struct radeon_device *rdev)
u32 crtc1 = 0, crtc2 = 0, crtc3 = 0, crtc4 = 0, crtc5 = 0, crtc6 = 0;
u32 hpd1, hpd2, hpd3, hpd4, hpd5, hpd6;
u32 grbm_int_cntl = 0;
- u32 grph1 = 0, grph2 = 0, grph3 = 0, grph4 = 0, grph5 = 0, grph6 = 0;
u32 afmt1 = 0, afmt2 = 0, afmt3 = 0, afmt4 = 0, afmt5 = 0, afmt6 = 0;
u32 dma_cntl, dma_cntl1 = 0;
u32 thermal_int = 0;
@@ -4558,15 +4557,21 @@ int evergreen_irq_set(struct radeon_device *rdev)
WREG32(INT_MASK + EVERGREEN_CRTC5_REGISTER_OFFSET, crtc6);
}
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, grph1);
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, grph2);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
if (rdev->num_crtc >= 4) {
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, grph3);
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, grph4);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
}
if (rdev->num_crtc >= 6) {
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, grph5);
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, grph6);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
}
WREG32(DC_HPD1_INT_CONTROL, hpd1);
@@ -4955,6 +4960,15 @@ restart_ih:
break;
}
break;
+ case 8: /* D1 page flip */
+ case 9: /* D2 page flip */
+ case 10: /* D3 page flip */
+ case 11: /* D4 page flip */
+ case 12: /* D5 page flip */
+ case 13: /* D6 page flip */
+ DRM_DEBUG("IH: D%d flip\n", src_id - 7);
+ radeon_crtc_handle_flip(rdev, src_id - 8);
+ break;
case 42: /* HPD hotplug */
switch (src_data) {
case 0:
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index 647ef40..114a3ef 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -3509,7 +3509,6 @@ int r600_irq_set(struct radeon_device *rdev)
u32 hpd1, hpd2, hpd3, hpd4 = 0, hpd5 = 0, hpd6 = 0;
u32 grbm_int_cntl = 0;
u32 hdmi0, hdmi1;
- u32 d1grph = 0, d2grph = 0;
u32 dma_cntl;
u32 thermal_int = 0;
@@ -3618,8 +3617,8 @@ int r600_irq_set(struct radeon_device *rdev)
WREG32(CP_INT_CNTL, cp_int_cntl);
WREG32(DMA_CNTL, dma_cntl);
WREG32(DxMODE_INT_MASK, mode_int);
- WREG32(D1GRPH_INTERRUPT_CONTROL, d1grph);
- WREG32(D2GRPH_INTERRUPT_CONTROL, d2grph);
+ WREG32(D1GRPH_INTERRUPT_CONTROL, DxGRPH_PFLIP_INT_MASK);
+ WREG32(D2GRPH_INTERRUPT_CONTROL, DxGRPH_PFLIP_INT_MASK);
WREG32(GRBM_INT_CNTL, grbm_int_cntl);
if (ASIC_IS_DCE3(rdev)) {
WREG32(DC_HPD1_INT_CONTROL, hpd1);
@@ -3922,6 +3921,11 @@ restart_ih:
break;
}
break;
+ case 9: /* D1 pflip */
+ case 10: /* D2 pflip */
+ DRM_DEBUG("IH: D%d flip\n", src_id - 8);
+ radeon_crtc_handle_flip(rdev, src_id - 9);
+ break;
case 19: /* HPD/DAC hotplug */
switch (src_data) {
case 0:
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index e887d02..5587de9 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -733,6 +733,12 @@ struct cik_irq_stat_regs {
u32 disp_int_cont4;
u32 disp_int_cont5;
u32 disp_int_cont6;
+ u32 d1grph_int;
+ u32 d2grph_int;
+ u32 d3grph_int;
+ u32 d4grph_int;
+ u32 d5grph_int;
+ u32 d6grph_int;
};
union radeon_irq_stat_regs {
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 12a01e9..5e4326f 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -284,6 +284,10 @@ void radeon_crtc_handle_flip(struct radeon_device *rdev, int crtc_id)
u32 update_pending;
int vpos, hpos;
+ /* can happen during initialization */
+ if (radeon_crtc == NULL)
+ return;
+
spin_lock_irqsave(&rdev->ddev->event_lock, flags);
work = radeon_crtc->unpin_work;
if (work == NULL ||
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
index 9a124d0..2b47e53 100644
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
@@ -5777,7 +5777,6 @@ int si_irq_set(struct radeon_device *rdev)
u32 crtc1 = 0, crtc2 = 0, crtc3 = 0, crtc4 = 0, crtc5 = 0, crtc6 = 0;
u32 hpd1 = 0, hpd2 = 0, hpd3 = 0, hpd4 = 0, hpd5 = 0, hpd6 = 0;
u32 grbm_int_cntl = 0;
- u32 grph1 = 0, grph2 = 0, grph3 = 0, grph4 = 0, grph5 = 0, grph6 = 0;
u32 dma_cntl, dma_cntl1;
u32 thermal_int = 0;
@@ -5916,16 +5915,22 @@ int si_irq_set(struct radeon_device *rdev)
}
if (rdev->num_crtc >= 2) {
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, grph1);
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, grph2);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
}
if (rdev->num_crtc >= 4) {
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, grph3);
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, grph4);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
}
if (rdev->num_crtc >= 6) {
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, grph5);
- WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, grph6);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
+ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET,
+ GRPH_PFLIP_INT_MASK);
}
if (!ASIC_IS_NODCE(rdev)) {
@@ -6289,6 +6294,15 @@ restart_ih:
break;
}
break;
+ case 8: /* D1 page flip */
+ case 9: /* D2 page flip */
+ case 10: /* D3 page flip */
+ case 11: /* D4 page flip */
+ case 12: /* D5 page flip */
+ case 13: /* D6 page flip */
+ DRM_DEBUG("IH: D%d flip\n", src_id - 7);
+ radeon_crtc_handle_flip(rdev, src_id - 8);
+ break;
case 42: /* HPD hotplug */
switch (src_data) {
case 0:
--
1.9.1

View File

@@ -0,0 +1,13 @@
diff --git a/drivers/gpu/drm/radeon/trinity_dpm.c b/drivers/gpu/drm/radeon/trinity_dpm.c
index 2a2822c..27505b6 100644
--- a/drivers/gpu/drm/radeon/trinity_dpm.c
+++ b/drivers/gpu/drm/radeon/trinity_dpm.c
@@ -1874,7 +1874,7 @@ int trinity_dpm_init(struct radeon_device *rdev)
for (i = 0; i < SUMO_MAX_HARDWARE_POWERLEVELS; i++)
pi->at[i] = TRINITY_AT_DFLT;
- pi->enable_bapm = false;
+ pi->enable_bapm = true;
pi->enable_nbps_policy = true;
pi->enable_sclk_ds = true;
pi->enable_gfx_power_gating = true;

View File

@@ -1,12 +0,0 @@
diff -Naur linux-3.13-rc1/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-3.13-rc1.patch/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
--- linux-3.13-rc1/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2013-11-22 20:30:55.000000000 +0100
+++ linux-3.13-rc1.patch/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2013-11-24 19:44:45.617201463 +0100
@@ -1427,6 +1427,8 @@
&rtl2832u_props, "Leadtek WinFast DTV Dongle mini", NULL) },
{ DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_CPYTO_REDI_PC50A,
&rtl2832u_props, "Crypto ReDi PC 50 A", NULL) },
+ { DVB_USB_DEVICE(USB_VID_GTEK, 0xa803,
+ &rtl2832u_props, "Realtek RTL2832U reference design", NULL) },
{ DVB_USB_DEVICE(USB_VID_HANFTEK, 0x0131,
&rtl2832u_props, "Astrometa DVB-T2", NULL) },

View File

@@ -1,55 +0,0 @@
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.17"
PKG_VERSION="0.3.18"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="prop."

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="xbmc-theme-Confluence"
PKG_VERSION="13-4410736"
PKG_VERSION="13-84725b0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -17,7 +17,7 @@
################################################################################
PKG_NAME="xbmc"
PKG_VERSION="13-4410736"
PKG_VERSION="13-84725b0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"

View File

@@ -0,0 +1,169 @@
From d3a6ee05721ca6536b30a4e270d1844acfcb0533 Mon Sep 17 00:00:00 2001
From: Stefan Saraev <stefan@saraev.ca>
Date: Thu, 5 Jun 2014 18:50:04 +0300
Subject: [PATCH] handle SIGTERM
In some situations, due to deadlocks or crashes, xbmc fails to exit properly in
CApplication::Stop(), so g_powerManager.Reboot() / g_powerManager.Powerdown() never gets
called, that's a big no-no for openelec as our users can't shutdown or reboot.
There are few addons reported to cause this behaviour: trakkt.tv, watchdog, weather.underground.
I've also noticed that sometimes new threads (FileCache ??) get started AFTER
CApplication::Stop() is called, delaying shutdown with 1+ minute (2 curl timeoouts?).
The problem seems to be in CJobManager::CancelJobs() but I am too lame to understand where,
why, and how to fix it.
To me, it seems best to let systemd handle it. systemd sends SIGTERM, then waits
TimeoutStopSec=xx seconds then sends SIGKILL,s so dont call g_application.Stop() from
ApplicationMessenger as it can not be trusted. save the requested exitcode instead
(that's required for CEC to switch off the tv) and do it from a simple SIGTERM handler instead.
CEC thread has enough time (5 seconds in xbmc.service) to switch of the TV after receiving OnQuit.
As a side "effect", now guisettings.xml will ALWAYS be saved, even if shutdown / rebooot
is requested externaly (ssh, 3rdparty script).
---
xbmc/Application.cpp | 10 ++++++++--
xbmc/Application.h | 1 +
xbmc/ApplicationMessenger.cpp | 6 ++++--
xbmc/XBApplicationEx.cpp | 1 +
xbmc/XBApplicationEx.h | 1 +
xbmc/main/main.cpp | 15 +++++++++++++++
6 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
index 9242d53..1b13667 100644
--- a/xbmc/Application.cpp
+++ b/xbmc/Application.cpp
@@ -3509,11 +3509,18 @@ bool CApplication::Cleanup()
}
}
+void CApplication::SetExitCode(int exitCode)
+{
+ // save it for CEC
+ m_ExitCode = exitCode;
+ m_ExitCodeSet = true;
+}
+
void CApplication::Stop(int exitCode)
{
try
{
- CVariant vExitCode(exitCode);
+ CVariant vExitCode(m_ExitCode);
CAnnouncementManager::Announce(System, "xbmc", "OnQuit", vExitCode);
SaveFileState(true);
@@ -3537,7 +3544,6 @@ void CApplication::Stop(int exitCode)
m_bStop = true;
m_AppFocused = false;
- m_ExitCode = exitCode;
CLog::Log(LOGNOTICE, "stop all");
// cancel any jobs from the jobmanager
diff --git a/xbmc/Application.h b/xbmc/Application.h
index e3a26c5..35656e3 100644
--- a/xbmc/Application.h
+++ b/xbmc/Application.h
@@ -149,6 +149,7 @@ public:
void StartPVRManager(bool bOpenPVRWindow = false);
void StopPVRManager();
bool IsCurrentThread() const;
+ void SetExitCode(int exitCode);
void Stop(int exitCode);
void RestartApp();
void UnloadSkin(bool forReload = false);
diff --git a/xbmc/ApplicationMessenger.cpp b/xbmc/ApplicationMessenger.cpp
index 3524e89..54a15da 100644
--- a/xbmc/ApplicationMessenger.cpp
+++ b/xbmc/ApplicationMessenger.cpp
@@ -259,13 +259,14 @@ void CApplicationMessenger::ProcessMessage(ThreadMessage *pMsg)
case TMSG_POWERDOWN:
{
- g_application.Stop(EXITCODE_POWERDOWN);
+ g_application.SetExitCode(EXITCODE_POWERDOWN);
g_powerManager.Powerdown();
}
break;
case TMSG_QUIT:
{
+ g_application.SetExitCode(EXITCODE_QUIT);
g_application.Stop(EXITCODE_QUIT);
}
break;
@@ -287,7 +288,7 @@ void CApplicationMessenger::ProcessMessage(ThreadMessage *pMsg)
case TMSG_RESTART:
case TMSG_RESET:
{
- g_application.Stop(EXITCODE_REBOOT);
+ g_application.SetExitCode(EXITCODE_REBOOT);
g_powerManager.Reboot();
}
break;
@@ -295,6 +296,7 @@ void CApplicationMessenger::ProcessMessage(ThreadMessage *pMsg)
case TMSG_RESTARTAPP:
{
#if defined(TARGET_WINDOWS) || defined(TARGET_LINUX)
+ g_application.SetExitCode(EXITCODE_RESTARTAPP);
g_application.Stop(EXITCODE_RESTARTAPP);
#endif
}
diff --git a/xbmc/XBApplicationEx.cpp b/xbmc/XBApplicationEx.cpp
index ad6a145..6058938 100644
--- a/xbmc/XBApplicationEx.cpp
+++ b/xbmc/XBApplicationEx.cpp
@@ -40,6 +40,7 @@ CXBApplicationEx::CXBApplicationEx()
m_bStop = false;
m_AppFocused = true;
m_ExitCode = EXITCODE_QUIT;
+ m_ExitCodeSet = false;
m_renderGUI = false;
}
diff --git a/xbmc/XBApplicationEx.h b/xbmc/XBApplicationEx.h
index c46cba1..ed3f35f 100644
--- a/xbmc/XBApplicationEx.h
+++ b/xbmc/XBApplicationEx.h
@@ -40,6 +40,7 @@ public:
// Variables for timing
bool m_bStop;
int m_ExitCode;
+ bool m_ExitCodeSet;
bool m_AppFocused;
bool m_renderGUI;
diff --git a/xbmc/main/main.cpp b/xbmc/main/main.cpp
index ec86426..ad8fe6e 100644
--- a/xbmc/main/main.cpp
+++ b/xbmc/main/main.cpp
@@ -40,9 +40,24 @@
#include "input/linux/LIRC.h"
#endif
#include "XbmcContext.h"
+#include "Application.h"
+
+void xbmc_term_handler(int signum)
+{
+ CLog::Log(LOGINFO, "Received SIGTERM...");
+ if (!g_application.m_ExitCodeSet)
+ g_application.SetExitCode(EXITCODE_RESTARTAPP);
+ g_application.Stop(EXITCODE_RESTARTAPP);
+}
int main(int argc, char* argv[])
{
+ // SIGTERM handler
+ struct sigaction action;
+ memset(&action, 0, sizeof(struct sigaction));
+ action.sa_handler = xbmc_term_handler;
+ sigaction(SIGTERM, &action, NULL);
+
// set up some xbmc specific relationships
XBMC::Context context;
--
1.9.1

View File

@@ -0,0 +1,236 @@
From 856d88d87f27370e8471963790db4e4e7c4ba910 Mon Sep 17 00:00:00 2001
From: Matthias Kortstiege <vdrfan@xbmc.org>
Date: Fri, 30 May 2014 15:57:25 +0200
Subject: [PATCH] added: CPosixDirectory implementation
---
XBMC.xcodeproj/project.pbxproj | 18 +++++
xbmc/filesystem/DirectoryFactory.cpp | 7 ++
xbmc/filesystem/Makefile.in | 1 +
xbmc/filesystem/posix/PosixDirectory.cpp | 130 +++++++++++++++++++++++++++++++
xbmc/filesystem/posix/PosixDirectory.h | 37 +++++++++
5 files changed, 193 insertions(+)
create mode 100644 xbmc/filesystem/posix/PosixDirectory.cpp
create mode 100644 xbmc/filesystem/posix/PosixDirectory.h
diff --git a/xbmc/filesystem/DirectoryFactory.cpp b/xbmc/filesystem/DirectoryFactory.cpp
index 260d53c..dc39a93 100644
--- a/xbmc/filesystem/DirectoryFactory.cpp
+++ b/xbmc/filesystem/DirectoryFactory.cpp
@@ -46,6 +46,9 @@
#include "utils/log.h"
#include "network/WakeOnAccess.h"
+#ifdef TARGET_POSIX
+#include "posix/PosixDirectory.h"
+#endif
#ifdef HAS_FILESYSTEM_SMB
#ifdef TARGET_WINDOWS
#include "windows/WINSMBDirectory.h"
@@ -135,7 +138,11 @@ IDirectory* CDirectoryFactory::Create(const CStdString& strPath)
CStdString strProtocol = url.GetProtocol();
+#ifdef TARGET_POSIX
+ if (strProtocol.size() == 0 || strProtocol == "file") return new CPosixDirectory();
+#else
if (strProtocol.size() == 0 || strProtocol == "file") return new CHDDirectory();
+#endif
if (strProtocol == "special") return new CSpecialProtocolDirectory();
if (strProtocol == "sources") return new CSourcesDirectory();
if (strProtocol == "addons") return new CAddonsDirectory();
diff --git a/xbmc/filesystem/Makefile.in b/xbmc/filesystem/Makefile.in
index 623bbb8..725951e 100644
--- a/xbmc/filesystem/Makefile.in
+++ b/xbmc/filesystem/Makefile.in
@@ -57,6 +57,7 @@ SRCS += PlaylistFileDirectory.cpp
SRCS += PipeFile.cpp
SRCS += PipesManager.cpp
SRCS += PluginDirectory.cpp
+SRCS += posix/PosixDirectory.cpp
SRCS += PVRFile.cpp
SRCS += PVRDirectory.cpp
SRCS += RSSDirectory.cpp
diff --git a/xbmc/filesystem/posix/PosixDirectory.cpp b/xbmc/filesystem/posix/PosixDirectory.cpp
new file mode 100644
index 0000000..e60c6f9
--- /dev/null
+++ b/xbmc/filesystem/posix/PosixDirectory.cpp
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2014 Team XBMC
+ * http://xbmc.org
+ *
+ * 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 XBMC; see the file COPYING. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#if defined(TARGET_POSIX)
+
+#include "PosixDirectory.h"
+#include "utils/StringUtils.h"
+#include "utils/URIUtils.h"
+#include "FileItem.h"
+#include "XTimeUtils.h"
+
+#include <dirent.h>
+#include <sys/stat.h>
+
+using namespace std;
+using namespace XFILE;
+
+CPosixDirectory::CPosixDirectory(void)
+{}
+
+CPosixDirectory::~CPosixDirectory(void)
+{}
+
+bool CPosixDirectory::GetDirectory(const CStdString& strPath, CFileItemList &items)
+{
+ const char* root = strPath;
+ struct dirent* entry;
+ DIR *dir = opendir(root);
+
+ if (!dir)
+ return false;
+
+ while ((entry = readdir(dir)) != NULL)
+ {
+ if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
+ continue;
+
+ CFileItemPtr pItem(new CFileItem(entry->d_name));
+ std::string itemPath(URIUtils::AddFileToFolder(root, entry->d_name));
+
+ bool bStat = false;
+ struct stat buffer;
+
+ // Unix-based readdir implementations may return an incorrect dirent.d_ino value that
+ // is not equal to the (correct) stat() obtained one. In this case the file type
+ // could not be determined and the value of dirent.d_type is set to DT_UNKNOWN.
+ // In order to get a correct value we have to incur the cost of calling stat.
+ if (entry->d_type == DT_UNKNOWN || entry->d_type == DT_LNK)
+ {
+ if (stat(itemPath.c_str(), &buffer) == 0)
+ bStat = true;
+ }
+
+ if (entry->d_type == DT_DIR || (bStat && buffer.st_mode & S_IFDIR))
+ {
+ pItem->m_bIsFolder = true;
+ URIUtils::AddSlashAtEnd(itemPath);
+ }
+ else
+ {
+ pItem->m_bIsFolder = false;
+ }
+
+ if (StringUtils::StartsWith(entry->d_name, "."))
+ pItem->SetProperty("file:hidden", true);
+
+ pItem->SetPath(itemPath);
+
+ if (!(m_flags & DIR_FLAG_NO_FILE_INFO))
+ {
+ if (bStat || stat(pItem->GetPath(), &buffer) == 0)
+ {
+ FILETIME fileTime, localTime;
+ TimeTToFileTime(buffer.st_mtime, &fileTime);
+ FileTimeToLocalFileTime(&fileTime, &localTime);
+ pItem->m_dateTime = localTime;
+
+ if (!pItem->m_bIsFolder)
+ pItem->m_dwSize = buffer.st_size;
+ }
+ }
+ items.Add(pItem);
+ }
+ closedir(dir);
+ return true;
+}
+
+bool CPosixDirectory::Create(const char* strPath)
+{
+ if (!strPath || !*strPath)
+ return false;
+
+ return (mkdir(strPath, 0755) == 0 || errno == EEXIST);
+}
+
+bool CPosixDirectory::Remove(const char* strPath)
+{
+ if (!strPath || !*strPath)
+ return false;
+
+ return (rmdir(strPath) == 0);
+}
+
+bool CPosixDirectory::Exists(const char* strPath)
+{
+ if (!strPath || !*strPath)
+ return false;
+
+ struct stat buffer;
+ if (stat(strPath, &buffer) != 0)
+ return false;
+ return S_ISDIR(buffer.st_mode) ? true : false;
+}
+#endif
diff --git a/xbmc/filesystem/posix/PosixDirectory.h b/xbmc/filesystem/posix/PosixDirectory.h
new file mode 100644
index 0000000..a3fd01e
--- /dev/null
+++ b/xbmc/filesystem/posix/PosixDirectory.h
@@ -0,0 +1,37 @@
+#pragma once
+/*
+ * Copyright (C) 2014 Team XBMC
+ * http://xbmc.org
+ *
+ * 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 XBMC; see the file COPYING. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "filesystem/IDirectory.h"
+
+namespace XFILE
+{
+
+class CPosixDirectory : public IDirectory
+{
+public:
+ CPosixDirectory(void);
+ virtual ~CPosixDirectory(void);
+ virtual bool GetDirectory(const CStdString& strPath, CFileItemList &items);
+ virtual bool Create(const char* strPath);
+ virtual bool Exists(const char* strPath);
+ virtual bool Remove(const char* strPath);
+};
+}
--
1.9.3

Some files were not shown because too many files have changed in this diff Show More