From 559da5e6e5aff9ccc57e29b6a91c35a528424b6c Mon Sep 17 00:00:00 2001 From: root Date: Tue, 28 Aug 2012 00:08:58 +0000 Subject: Tue Aug 28 00:08:57 UTC 2012 --- libre/cdfs-libre/PKGBUILD | 40 ++++ libre/cdfs-libre/cdfs-3.0.patch | 274 ++++++++++++++++++++++++++ libre/cdfs-libre/cdfs-3.2.patch | 12 ++ libre/cdfs-libre/cdfs-3.4.patch | 12 ++ libre/cdfs-libre/cdfs.install | 14 ++ libre/linux-libre-lts/PKGBUILD | 10 +- libre/linux-libre-lts/linux-libre-lts.install | 4 +- libre/linux-libre/PKGBUILD | 29 ++- libre/linux-libre/alsa-powersave-3.5.x.patch | 29 +++ libre/linux-libre/i915-i2c-crash-3.5.x.patch | 47 +++++ libre/linux-libre/linux-libre.install | 4 +- libre/linux-libre/watchdog-3.5.x.patch | 60 ++++++ libre/lirc-libre/PKGBUILD | 4 +- libre/vhba-module-libre/PKGBUILD | 2 +- libre/virtualbox-libre-modules/PKGBUILD | 2 +- 15 files changed, 524 insertions(+), 19 deletions(-) create mode 100644 libre/cdfs-libre/PKGBUILD create mode 100644 libre/cdfs-libre/cdfs-3.0.patch create mode 100644 libre/cdfs-libre/cdfs-3.2.patch create mode 100644 libre/cdfs-libre/cdfs-3.4.patch create mode 100644 libre/cdfs-libre/cdfs.install create mode 100644 libre/linux-libre/alsa-powersave-3.5.x.patch create mode 100644 libre/linux-libre/i915-i2c-crash-3.5.x.patch create mode 100644 libre/linux-libre/watchdog-3.5.x.patch (limited to 'libre') 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 +# Contributor: J. Santiago Hirschfeld +# Maintainer (Parabola): André Silva + +_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 +- +-#ifndef OLD_KERNEL + #include +-#endif ++#include + + 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 +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: [v3.5+] +Signed-off-by: Takashi Iwai +--- + +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 +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 +Signed-off-by: Jani Nikula +Signed-off-by: Daniel Vetter +--- + 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') -- cgit v1.2.3-54-g00ecf