summaryrefslogtreecommitdiff
path: root/libre
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-08-28 00:08:58 +0000
committerroot <root@rshg054.dnsready.net>2012-08-28 00:08:58 +0000
commit559da5e6e5aff9ccc57e29b6a91c35a528424b6c (patch)
tree0e648ff39bc964f3bd675917b369124f8e1e0dee /libre
parentfeeabffe5469ebe2fde0e79802e470d007528b85 (diff)
Tue Aug 28 00:08:57 UTC 2012
Diffstat (limited to 'libre')
-rw-r--r--libre/cdfs-libre/PKGBUILD40
-rw-r--r--libre/cdfs-libre/cdfs-3.0.patch274
-rw-r--r--libre/cdfs-libre/cdfs-3.2.patch12
-rw-r--r--libre/cdfs-libre/cdfs-3.4.patch12
-rw-r--r--libre/cdfs-libre/cdfs.install14
-rw-r--r--libre/linux-libre-lts/PKGBUILD10
-rw-r--r--libre/linux-libre-lts/linux-libre-lts.install4
-rw-r--r--libre/linux-libre/PKGBUILD29
-rw-r--r--libre/linux-libre/alsa-powersave-3.5.x.patch29
-rw-r--r--libre/linux-libre/i915-i2c-crash-3.5.x.patch47
-rw-r--r--libre/linux-libre/linux-libre.install4
-rw-r--r--libre/linux-libre/watchdog-3.5.x.patch60
-rw-r--r--libre/lirc-libre/PKGBUILD4
-rw-r--r--libre/vhba-module-libre/PKGBUILD2
-rw-r--r--libre/virtualbox-libre-modules/PKGBUILD2
15 files changed, 524 insertions, 19 deletions
diff --git a/libre/cdfs-libre/PKGBUILD b/libre/cdfs-libre/PKGBUILD
new file mode 100644
index 000000000..700c6b818
--- /dev/null
+++ b/libre/cdfs-libre/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: J. Santiago Hirschfeld <jsantiagoh@yahoo.com.ar>
+# Maintainer (Parabola): André Silva <emulatorman@lavabit.com>
+
+_pkgname=cdfs
+pkgname=cdfs-libre
+pkgver=2.6.27
+pkgrel=27
+pkgdesc="File system module libre that 'exports' all tracks and boot images on a CD as normal files."
+arch=(i686 x86_64)
+url="http://www.elis.UGent.be/~ronsse/cdfs/"
+license=('GPL')
+makedepends=('linux-libre-headers')
+replaces=('cdfs')
+conflicts=('cdfs')
+provides=("cdfs=${pkgver}")
+install=cdfs.install
+source=("http://www.elis.UGent.be/~ronsse/cdfs/download/$_pkgname-$pkgver.tar.bz2"
+ "cdfs-3.0.patch"
+ "cdfs-3.2.patch"
+ "cdfs-3.4.patch")
+md5sums=('ac64c014a90e3c488394832ea29605b3'
+ 'aba7da94a9dcbb8a93ea423cb6958fef'
+ 'e934407b3460257a301822ffc4ab3933'
+ '9215e7bdac728bd2f889fb525e543454')
+
+build() {
+ _kernver=`pacman -Q linux-libre | cut -d . -f 2 | cut -f 1 -d -`
+ depends=("linux-libre>=3.${_kernver}" "linux-libre<3.`expr ${_kernver} + 1`")
+ _kernverfull=`cat /usr/lib/modules/extramodules-3.${_kernver}-LIBRE/version`
+
+ cd $srcdir/$_pkgname-$pkgver
+ patch -p1 <$srcdir/cdfs-3.0.patch
+ patch -p1 <$srcdir/cdfs-3.2.patch
+ patch -p1 <$srcdir/cdfs-3.4.patch
+ make KDIR=/usr/lib/modules/${_kernverfull}/build
+ install -Dm0644 cdfs.ko $pkgdir/usr/lib/modules/extramodules-3.${_kernver}-LIBRE/cdfs.ko
+ sed -i "s|extramodules-.*-LIBRE|extramodules-3.${_kernver}-LIBRE|" $startdir/cdfs.install
+}
diff --git a/libre/cdfs-libre/cdfs-3.0.patch b/libre/cdfs-libre/cdfs-3.0.patch
new file mode 100644
index 000000000..445a28970
--- /dev/null
+++ b/libre/cdfs-libre/cdfs-3.0.patch
@@ -0,0 +1,274 @@
+diff -wbBur cdfs-2.6.27/cddata.c cdfs-2.6.27.my/cddata.c
+--- cdfs-2.6.27/cddata.c 2009-12-21 17:04:03.000000000 +0300
++++ cdfs-2.6.27.my/cddata.c 2011-07-24 21:18:44.000000000 +0400
+@@ -83,7 +83,7 @@
+ #else
+ .mmap = generic_file_readonly_mmap,
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
+- .sendfile = generic_file_sendfile
++// .sendfile = generic_file_sendfile
+ #else
+ .splice_read = generic_file_splice_read
+ #endif
+diff -wbBur cdfs-2.6.27/root.c cdfs-2.6.27.my/root.c
+--- cdfs-2.6.27/root.c 2009-12-21 16:38:31.000000000 +0300
++++ cdfs-2.6.27.my/root.c 2011-07-25 13:16:59.000000000 +0400
+@@ -32,19 +30,14 @@
+ * Added code to transform /proc/cdfs into a sequential synthetic file. *
+ *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
+
+-
+ #include <linux/seq_file.h>
+-
+-#ifndef OLD_KERNEL
+ #include <linux/statfs.h>
+-#endif
++#include <linux/sched.h>
+
+ extern struct seq_operations cdfs_operations;
+ extern struct _track_info *dummy_track_p;
+
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24)
+ struct inode *cdfs_iget(struct super_block *sp, unsigned long ino);
+-#endif
+ /*============================================================================*
+ * cdfs_open() *
+ * Description: *
+@@ -115,15 +108,8 @@
+
+ /********************************************************************/
+
+-#ifdef OLD_KERNEL
+-static struct super_block * cdfs_mount(struct super_block *sb, void *data, int silent){
+- kdev_t dev = sb->s_dev;
+- int i, j, t;
+- struct cdrom_tochdr hdr;
+-#else
+ static int cdfs_fill_super(struct super_block *sb, void *data, int silent){
+ int i, t;
+-#endif
+ struct cdrom_tocentry entry;
+ int no_audio=0, no_data=0;
+ cd * this_cd;
+@@ -131,24 +117,13 @@
+
+ PRINT("cdfs_mount\n");
+
+-#ifdef OLD_KERNEL
+- MOD_INC_USE_COUNT;
+-
+- set_blocksize(dev, CD_FRAMESIZE); // voor bread met ide-cd
+-#else
+ sb_set_blocksize(sb, CD_FRAMESIZE); // voor bread met ide-cd
+-#endif
+
+ sb->s_blocksize = CD_FRAMESIZE;
+ sb->s_blocksize_bits = 11;
+
+ if (!(this_cd = cdfs_info(sb) = kmalloc(sizeof(cd), GFP_KERNEL))){
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ return -ENOMEM;
+-#endif
+ }
+
+ this_cd->mode = MODE;
+@@ -160,13 +135,8 @@
+
+ // Initialize cache for maximum sector size
+ if (!(this_cd->cache = kmalloc(CD_FRAMESIZE_RAWER*CACHE_SIZE, GFP_KERNEL))) {
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ kfree(cdfs_info(sb));
+ return -ENOMEM;
+-#endif
+ }
+
+ // Cache is still invalid
+@@ -183,23 +153,13 @@
+ if (this_cd->toc_scsi){
+ if (cdfs_toc_read_full(sb)){
+ printk("TOC read failed\n");
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ goto invalid;
+-#endif
+ }
+ } else {
+ //if (cdfs_ioctl(sb, CDROMREADTOCHDR, (unsigned long)&hdr)){
+ if (cdfs_toc_read(sb)){
+ printk("cdfs_toc_read failed\n");
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+- return NULL;
+-#else
+ goto invalid;
+-#endif
+ }
+ }
+
+@@ -365,11 +325,7 @@
+ sb->s_flags |= MS_RDONLY;
+ sb->s_op = &cdfs_ops;
+ /* always get inode status */
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24)
+ retinode=cdfs_iget(sb, 0);
+-#else
+- retinode=iget(sb, 0);
+-#endif
+ if ( IS_ERR(retinode) )
+ return PTR_ERR(retinode);
+
+@@ -379,16 +335,12 @@
+
+ cdfs_proc_cd = this_cd;
+
+-#ifdef OLD_KERNEL
+- return sb;
+-#else
+ return 0;
+
+ invalid:
+ kfree(this_cd->cache);
+ kfree(cdfs_info(sb));
+ return -EINVAL;
+-#endif
+ }
+
+ /************************************************************************/
+@@ -410,27 +362,12 @@
+ // Remove /proc entry
+ cdfs_proc_cd = NULL;
+ kfree(cdfs_info(sb));
+-
+-#ifdef OLD_KERNEL
+- MOD_DEC_USE_COUNT;
+-#endif
+-
+ }
+
+ /************************************************************************/
+
+-#ifdef OLD_KERNEL
+-static int cdfs_statfs(struct super_block *sb, struct statfs *buf) {
+- cd * this_cd = cdfs_info(sb);
+-#else
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)
+ static int cdfs_statfs(struct dentry *d, struct kstatfs *buf) {
+ cd * this_cd = cdfs_info(d->d_sb);
+-#else
+-static int cdfs_statfs(struct super_block *sb, struct kstatfs *buf) {
+- cd * this_cd = cdfs_info(sb);
+-#endif
+-#endif
+ PRINT("rmfs_statfs\n");
+
+ buf->f_type = CDFS_MAGIC;
+@@ -460,11 +397,7 @@
+
+ /************************************************************************/
+
+-#ifdef OLD_KERNEL
+-static struct dentry * cdfs_lookup(struct inode *dir, struct dentry *dentry){
+-#else
+ static struct dentry * cdfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd){
+-#endif
+ struct inode * inode;
+ int i;
+ cd * this_cd = cdfs_info(dir->i_sb);
+@@ -480,15 +413,9 @@
+ /* Use goto and read inode with iget()/cdfs_iget() */
+ /* Thanks to David Howells for patch and Master class in his mail */
+ found:
+-#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,24)
+ inode = cdfs_iget(dir->i_sb, i);
+ if (IS_ERR(inode))
+ return ERR_CAST(inode);
+-#else
+- inode = iget(dir->i_sb, i);
+- if (!inode)
+- return ERR_PTR(-ENOMEM);
+-#endif
+ d_add(dentry, inode);
+ return NULL;
+ }
+@@ -529,12 +456,8 @@
+ i->i_fop = &cdfs_dir_operations;
+ } else { /* file */
+ i->i_size = this_cd->track[i->i_ino].size;
+-#ifdef OLD_KERNEL
+- i->i_mtime = i->i_atime = i->i_ctime = this_cd->track[i->i_ino].time;
+-#else
+ i->i_mtime.tv_sec = i->i_atime.tv_sec = i->i_ctime.tv_sec = this_cd->track[i->i_ino].time;
+ i->i_mtime.tv_nsec = i->i_atime.tv_nsec = i->i_ctime.tv_nsec = 0;
+-#endif
+ i->i_mode = this_cd->mode;
+ if ((this_cd->track[i->i_ino].type==DATA) && this_cd->track[i->i_ino].iso_size) {
+ i->i_fop = &cdfs_cddata_file_operations;
+@@ -587,33 +510,21 @@
+ /******************************************************************/
+
+ static struct super_operations cdfs_ops = {
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
+- .read_inode = cdfs_read_inode,
+-#endif
+ .put_super = cdfs_umount,
+ .statfs = cdfs_statfs
+ };
+
+-#ifdef OLD_KERNEL
+-static DECLARE_FSTYPE_DEV(cdfs_fs_type, FSNAME, cdfs_mount);
+-#else
+-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)
+-static int cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, struct vfsmount *mnt) {
+- return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super, mnt);
+-#else
+-static struct super_block *cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data) {
+- return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super);
+-#endif
+-}
++//static int cdfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, struct vfsmount *mnt) {
++// return get_sb_bdev(fs_type, flags, dev_name, data, cdfs_fill_super, mnt);
++//}
+
+ static struct file_system_type cdfs_fs_type = {
+ .owner = THIS_MODULE,
+ .name = "cdfs",
+- .get_sb = cdfs_get_sb,
++// .get_sb = cdfs_get_sb,
+ .kill_sb = kill_block_super,
+ .fs_flags = FS_REQUIRES_DEV
+ };
+-#endif
+
+ /******************************************************/
+
+@@ -621,10 +532,6 @@
+ MODULE_DESCRIPTION("CDfs: a CD filesystem");
+ MODULE_LICENSE("GPL");
+
+-#ifdef OLD_KERNEL
+-EXPORT_NO_SYMBOLS;
+-#endif
+-
+ /******************************************************************/
+
+ static int __init cdfs_init(void) {
+@@ -676,11 +583,7 @@
+
+ if (!options) return;
+
+-#ifdef OLD_KERNEL
+- for (this_char = strtok(options,","); this_char; this_char = strtok(NULL,",")) {
+-#else
+ while ((this_char = strsep(&options,",")) != NULL) {
+-#endif
+
+ if (!strcmp(this_char,"single"))
+ this_cd->single=TRUE;
diff --git a/libre/cdfs-libre/cdfs-3.2.patch b/libre/cdfs-libre/cdfs-3.2.patch
new file mode 100644
index 000000000..b4ea610b5
--- /dev/null
+++ b/libre/cdfs-libre/cdfs-3.2.patch
@@ -0,0 +1,12 @@
+diff -wbBur cdfs-2.6.27/root.c cdfs-2.6.27.my/root.c
+--- cdfs-2.6.27/root.c 2009-12-21 16:38:31.000000000 +0300
++++ cdfs-2.6.27.my/root.c 2012-01-18 11:23:03.000000000 +0400
+@@ -517,7 +517,7 @@
+
+ i->i_uid = this_cd->uid;
+ i->i_gid = this_cd->gid;
+- i->i_nlink = 1;
++ i->__i_nlink = 1;
+ i->i_op = &cdfs_inode_operations;
+ i->i_fop = NULL;
+ i->i_data.a_ops = NULL;
diff --git a/libre/cdfs-libre/cdfs-3.4.patch b/libre/cdfs-libre/cdfs-3.4.patch
new file mode 100644
index 000000000..8e66bd85c
--- /dev/null
+++ b/libre/cdfs-libre/cdfs-3.4.patch
@@ -0,0 +1,12 @@
+diff -wbBur cdfs-2.6.27/root.c cdfs-2.6.27.my/root.c
+--- cdfs-2.6.27/root.c 2009-12-21 16:38:31.000000000 +0300
++++ cdfs-2.6.27.my/root.c 2012-06-15 17:09:27.000000000 +0400
+@@ -375,7 +375,7 @@
+
+ PRINT("retinode = %ld\n", retinode->i_ino);
+
+- sb->s_root = d_alloc_root(retinode);
++ sb->s_root = d_make_root(retinode);
+
+ cdfs_proc_cd = this_cd;
+ \ No newline at end of file
diff --git a/libre/cdfs-libre/cdfs.install b/libre/cdfs-libre/cdfs.install
new file mode 100644
index 000000000..1c3cb4f8e
--- /dev/null
+++ b/libre/cdfs-libre/cdfs.install
@@ -0,0 +1,14 @@
+post_install() {
+ EXTRAMODULES='extramodules-3.5-LIBRE'
+ depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
+}
+
+post_upgrade() {
+ EXTRAMODULES='extramodules-3.5-LIBRE'
+ depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
+}
+
+post_remove() {
+ EXTRAMODULES='extramodules-3.5-LIBRE'
+ depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
+}
diff --git a/libre/linux-libre-lts/PKGBUILD b/libre/linux-libre-lts/PKGBUILD
index e7d044b92..03c280487 100644
--- a/libre/linux-libre-lts/PKGBUILD
+++ b/libre/linux-libre-lts/PKGBUILD
@@ -7,7 +7,7 @@
pkgbase=linux-libre-lts # Build stock -LIBRE-LTS kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.0
-_sublevel=41
+_sublevel=42
pkgver=${_basekernel}.${_sublevel}
pkgrel=1
_lxopkgver=${_basekernel}.41 # nearly always the same as pkgver
@@ -29,11 +29,8 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'i915-fix-ghost-tv-output.patch'
'ext4-options.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
-
-_kernelname=${pkgbase#linux-libre}
-_localversionname=-LIBRE-LTS
md5sums=('5f64180fe7df4e574dac5911b78f5067'
- 'b4ebaa2ebf8418c75aba96fd4dd6daf3'
+ '8f1c9341d99e941b07d1d6f85f1953aa'
'8cd05778fc1c2d8145b3b9932b4e3164'
'87a54dc6251cf2adf35f72ddeddb6ea8'
'c072b17032e80debc6a8626299245d46'
@@ -50,6 +47,9 @@ if [ "$CARCH" != "mips64el" ]; then
unset md5sums[${#md5sums[@]}-1]
fi
+_kernelname=${pkgbase#linux-libre}
+_localversionname=-LIBRE-LTS
+
build() {
cd "${srcdir}/linux-${_basekernel}"
diff --git a/libre/linux-libre-lts/linux-libre-lts.install b/libre/linux-libre-lts/linux-libre-lts.install
index e92e5eb16..05124e7ab 100644
--- a/libre/linux-libre-lts/linux-libre-lts.install
+++ b/libre/linux-libre-lts/linux-libre-lts.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=-lts
-KERNEL_VERSION=3.0.41-1-LIBRE-LTS
+KERNEL_VERSION=3.0.42-1-LIBRE-LTS
# set a sane PATH to ensure that critical utils like depmod will be found
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
@@ -33,7 +33,7 @@ post_install () {
post_upgrade() {
pacman -Q grub &>/dev/null
hasgrub=$?
- pacman -Q grub2-common &>/dev/null
+ pacman -Q grub-common &>/dev/null
hasgrub2=$?
pacman -Q lilo &>/dev/null
haslilo=$?
diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD
index 661fec088..e63be980b 100644
--- a/libre/linux-libre/PKGBUILD
+++ b/libre/linux-libre/PKGBUILD
@@ -10,9 +10,9 @@
pkgbase=linux-libre # Build stock -LIBRE kernel
#pkgbase=linux-libre-custom # Build kernel with a different name
_basekernel=3.5
-_sublevel=2
+_sublevel=3
pkgver=${_basekernel}.${_sublevel}
-pkgrel=1.1
+pkgrel=1
_lxopkgver=${_basekernel}.2 # nearly always the same as pkgver
arch=('i686' 'x86_64' 'mips64el')
url="http://linux-libre.fsfla.org/"
@@ -29,12 +29,12 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gn
'Kbuild.platforms'
'boot-logo.patch'
'change-default-console-loglevel.patch'
+ 'alsa-powersave-3.5.x.patch'
+ 'watchdog-3.5.x.patch'
+ 'i915-i2c-crash-3.5.x.patch'
"http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2")
-
-_kernelname=${pkgbase#linux-libre}
-_localversionname=-LIBRE
md5sums=('2407fc9563a74acaf38aa0c06516eb1c'
- 'b081f37b73c652cbb0d5193174092709'
+ '861f5f97c75b1a572fc5078605248ea3'
'3ba164b409d8024fdd433f3cc4ae1fea'
'fa1e2ab2f036974199374f015f5a2c46'
'e49ac236dfeef709f91a3d993ea7b62c'
@@ -42,6 +42,9 @@ md5sums=('2407fc9563a74acaf38aa0c06516eb1c'
'8267264d9a8966e57fdacd1fa1fc65c4'
'04b21c79df0a952c22d681dd4f4562df'
'9d3c56a4b999c8bfbd4018089a62f662'
+ 'c1d58e712112cf8f95e7831012a1e67a'
+ 'ae13ed1e92bba07e9b17cf5c8d89683c'
+ 'ff4a203dd52e4dfb5d60948bb667d06d'
'd822cc131b20090f39b0d448b0e1f8be')
if [ "$CARCH" != "mips64el" ]; then
# Don't use the Loongson-specific patches on non-mips64el arches.
@@ -49,6 +52,9 @@ if [ "$CARCH" != "mips64el" ]; then
unset md5sums[${#md5sums[@]}-1]
fi
+_kernelname=${pkgbase#linux-libre}
+_localversionname=-LIBRE
+
build() {
cd "${srcdir}/linux-${_basekernel}"
@@ -59,6 +65,17 @@ build() {
# Add freedo as boot logo
patch -Np1 -i "${srcdir}/boot-logo.patch"
+ # fix alsa powersave bug, probably fixed in 3.5.4
+ # https://bugs.archlinux.org/task/31255
+ patch -Np1 -i "${srcdir}/alsa-powersave-3.5.x.patch"
+
+ # fix broken watchdog
+ # https://bugzilla.kernel.org/show_bug.cgi?id=44991
+ patch -Np1 -i "${srcdir}/watchdog-3.5.x.patch"
+
+ # fix i915 i2c crash
+ # https://bugzilla.kernel.org/show_bug.cgi?id=46381
+ patch -Np1 -i "${srcdir}/i915-i2c-crash-3.5.x.patch"
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
# remove this when a Kconfig knob is made available by upstream
diff --git a/libre/linux-libre/alsa-powersave-3.5.x.patch b/libre/linux-libre/alsa-powersave-3.5.x.patch
new file mode 100644
index 000000000..189fd1ceb
--- /dev/null
+++ b/libre/linux-libre/alsa-powersave-3.5.x.patch
@@ -0,0 +1,29 @@
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 20 Aug 2012 19:25:22 +0000 (+0200)
+Subject: ALSA: hda - Fix leftover codec->power_transition
+X-Git-Tag: v3.6-rc3~14^2~1
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=commitdiff_plain;h=535b6c51fe8293c88ce919cdfc4390c67a1cb6d1
+
+ALSA: hda - Fix leftover codec->power_transition
+
+When the codec turn-on operation is canceled by the immediate
+power-on, the driver left the power_transition flag as is.
+This caused the persistent avoidance of power-save behavior.
+
+Cc: <stable@vger.kernel.org> [v3.5+]
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+---
+
+diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
+index c3077d5..f560051 100644
+--- a/sound/pci/hda/hda_codec.c
++++ b/sound/pci/hda/hda_codec.c
+@@ -4454,6 +4454,8 @@ static void __snd_hda_power_up(struct hda_codec *codec, bool wait_power_down)
+ * then there is no need to go through power up here.
+ */
+ if (codec->power_on) {
++ if (codec->power_transition < 0)
++ codec->power_transition = 0;
+ spin_unlock(&codec->power_lock);
+ return;
+ }
diff --git a/libre/linux-libre/i915-i2c-crash-3.5.x.patch b/libre/linux-libre/i915-i2c-crash-3.5.x.patch
new file mode 100644
index 000000000..d202b531c
--- /dev/null
+++ b/libre/linux-libre/i915-i2c-crash-3.5.x.patch
@@ -0,0 +1,47 @@
+From cee25168e9c4ef7f9417632af2dc78b8521dfda7 Mon Sep 17 00:00:00 2001
+From: Jani Nikula <jani.nikula@intel.com>
+Date: Mon, 13 Aug 2012 17:33:02 +0300
+Subject: [PATCH] drm/i915: ensure i2c adapter is all set before adding it
+
+i2c_add_adapter() may do i2c transfers on the bus to detect supported
+devices. Therefore the adapter needs to be all set before adding it. This
+was not the case for the bit-banging fallback, resulting in an oops if the
+device detection GMBUS transfers timed out. Fix the issue by calling
+i2c_add_adapter() only after intel_gpio_setup().
+
+LKML-Reference: <5021F00B.7000503@ionic.de>
+Tested-by: Mihai Moldovan <ionic@ionic.de>
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+---
+ drivers/gpu/drm/i915/intel_i2c.c | 7 ++++---
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/intel_i2c.c b/drivers/gpu/drm/i915/intel_i2c.c
+index d79500b..b9755f6 100644
+--- a/drivers/gpu/drm/i915/intel_i2c.c
++++ b/drivers/gpu/drm/i915/intel_i2c.c
+@@ -486,9 +486,6 @@ int intel_setup_gmbus(struct drm_device *dev)
+ bus->dev_priv = dev_priv;
+
+ bus->adapter.algo = &gmbus_algorithm;
+- ret = i2c_add_adapter(&bus->adapter);
+- if (ret)
+- goto err;
+
+ /* By default use a conservative clock rate */
+ bus->reg0 = port | GMBUS_RATE_100KHZ;
+@@ -498,6 +495,10 @@ int intel_setup_gmbus(struct drm_device *dev)
+ bus->force_bit = true;
+
+ intel_gpio_setup(bus, port);
++
++ ret = i2c_add_adapter(&bus->adapter);
++ if (ret)
++ goto err;
+ }
+
+ intel_i2c_reset(dev_priv->dev);
+--
+1.7.7.6
+
diff --git a/libre/linux-libre/linux-libre.install b/libre/linux-libre/linux-libre.install
index 59b77b82d..0cd51930e 100644
--- a/libre/linux-libre/linux-libre.install
+++ b/libre/linux-libre/linux-libre.install
@@ -2,7 +2,7 @@
# arg 2: the old package version
KERNEL_NAME=
-KERNEL_VERSION=3.5.2-1.1-LIBRE
+KERNEL_VERSION=3.5.3-1-LIBRE
# set a sane PATH to ensure that critical utils like depmod will be found
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
@@ -33,7 +33,7 @@ post_install () {
post_upgrade() {
pacman -Q grub &>/dev/null
hasgrub=$?
- pacman -Q grub2-common &>/dev/null
+ pacman -Q grub-common &>/dev/null
hasgrub2=$?
pacman -Q lilo &>/dev/null
haslilo=$?
diff --git a/libre/linux-libre/watchdog-3.5.x.patch b/libre/linux-libre/watchdog-3.5.x.patch
new file mode 100644
index 000000000..7ac1e6732
--- /dev/null
+++ b/libre/linux-libre/watchdog-3.5.x.patch
@@ -0,0 +1,60 @@
+diff --git a/drivers/mfd/lpc_ich.c b/drivers/mfd/lpc_ich.c
+index 027cc8f..a05fdfc 100644
+--- a/drivers/mfd/lpc_ich.c
++++ b/drivers/mfd/lpc_ich.c
+@@ -765,7 +765,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
+ u32 base_addr_cfg;
+ u32 base_addr;
+ int ret;
+- bool acpi_conflict = false;
+ struct resource *res;
+
+ /* Setup power management base register */
+@@ -780,20 +779,11 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
+ res = wdt_io_res(ICH_RES_IO_TCO);
+ res->start = base_addr + ACPIBASE_TCO_OFF;
+ res->end = base_addr + ACPIBASE_TCO_END;
+- ret = acpi_check_resource_conflict(res);
+- if (ret) {
+- acpi_conflict = true;
+- goto wdt_done;
+- }
+
+ res = wdt_io_res(ICH_RES_IO_SMI);
+ res->start = base_addr + ACPIBASE_SMI_OFF;
+ res->end = base_addr + ACPIBASE_SMI_END;
+- ret = acpi_check_resource_conflict(res);
+- if (ret) {
+- acpi_conflict = true;
+- goto wdt_done;
+- }
++
+ lpc_ich_enable_acpi_space(dev);
+
+ /*
+@@ -813,11 +803,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
+ res = wdt_mem_res(ICH_RES_MEM_GCS);
+ res->start = base_addr + ACPIBASE_GCS_OFF;
+ res->end = base_addr + ACPIBASE_GCS_END;
+- ret = acpi_check_resource_conflict(res);
+- if (ret) {
+- acpi_conflict = true;
+- goto wdt_done;
+- }
+ }
+
+ lpc_ich_finalize_cell(&lpc_ich_cells[LPC_WDT], id);
+@@ -825,9 +810,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev,
+ 1, NULL, 0);
+
+ wdt_done:
+- if (acpi_conflict)
+- pr_warn("Resource conflict(s) found affecting %s\n",
+- lpc_ich_cells[LPC_WDT].name);
+ return ret;
+ }
+
+--
+1.7.1
+
+ \ No newline at end of file
diff --git a/libre/lirc-libre/PKGBUILD b/libre/lirc-libre/PKGBUILD
index 4b3384c25..0968afd17 100644
--- a/libre/lirc-libre/PKGBUILD
+++ b/libre/lirc-libre/PKGBUILD
@@ -6,7 +6,7 @@ _pkgbase=lirc
pkgbase=lirc-libre
pkgname=('lirc-libre' 'lirc-utils-libre')
pkgver=0.9.0
-pkgrel=25
+pkgrel=26
epoch=1
_extramodules=extramodules-3.5-LIBRE
arch=('i686' 'x86_64' 'mips64el')
@@ -63,7 +63,7 @@ build() {
}
package_lirc-libre() {
- pkgdesc="Linux-libre Infrared Remote Control kernel modules for stock libre kernel"
+ pkgdesc="Linux-libre Infrared Remote Control kernel modules for stock kernel libre"
depends=('lirc-utils-libre' 'linux-libre>=3.4' 'linux-libre<3.5')
replaces=('lirc' 'lirc+pctv')
conflicts=('lirc')
diff --git a/libre/vhba-module-libre/PKGBUILD b/libre/vhba-module-libre/PKGBUILD
index 5e5b3411f..51c847e40 100644
--- a/libre/vhba-module-libre/PKGBUILD
+++ b/libre/vhba-module-libre/PKGBUILD
@@ -7,7 +7,7 @@ _pkgname=vhba-module
pkgname=vhba-module-libre
pkgver=20120422
_extramodules=extramodules-3.5-LIBRE
-pkgrel=7.1
+pkgrel=8
pkgdesc="Kernel libre module that emulates SCSI devices"
arch=('i686' 'x86_64')
url="http://cdemu.sourceforge.net/"
diff --git a/libre/virtualbox-libre-modules/PKGBUILD b/libre/virtualbox-libre-modules/PKGBUILD
index 18b529e63..096fbc594 100644
--- a/libre/virtualbox-libre-modules/PKGBUILD
+++ b/libre/virtualbox-libre-modules/PKGBUILD
@@ -6,7 +6,7 @@
pkgbase=virtualbox-libre-modules
pkgname=('virtualbox-libre-modules' 'virtualbox-libre-parabola-modules')
pkgver=4.1.20
-pkgrel=2
+pkgrel=3
arch=('i686' 'x86_64')
url='http://virtualbox.org'
license=('GPL')