From dd29002274e3109288469fe9677575d450807542 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Mon, 27 Aug 2012 14:59:45 -0300 Subject: linux-libre-3.5.3-1: updating version --- libre/linux-libre/PKGBUILD | 27 ++++++++++--- 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 ++++++++++++++++++++++++++++ 5 files changed, 160 insertions(+), 7 deletions(-) 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/linux-libre') diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index 661fec088..7d0f0a70e 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,10 +29,10 @@ 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' '3ba164b409d8024fdd433f3cc4ae1fea' @@ -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..6d9df083b --- /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 + + -- cgit v1.2.3