diff options
author | Jurij Smakov <jurij@wooyd.org> | 2007-03-09 13:44:14 +0000 |
---|---|---|
committer | Jurij Smakov <jurij@wooyd.org> | 2007-03-09 13:44:14 +0000 |
commit | c41b90cf46108e961bf9ce2eee37fb4217e8e27d (patch) | |
tree | aecd07bb8259f46425ee790e9c78c84d584c7469 | |
parent | e633d6b5564e9ce9e81acfe9849e8c45f36bd62e (diff) | |
download | kernel_replicant_linux-c41b90cf46108e961bf9ce2eee37fb4217e8e27d.tar.gz kernel_replicant_linux-c41b90cf46108e961bf9ce2eee37fb4217e8e27d.tar.bz2 kernel_replicant_linux-c41b90cf46108e961bf9ce2eee37fb4217e8e27d.zip |
* Add series/12
* Add e450-boot-failure.patch to fix boot failure on E450.
svn path=/dists/sid/linux-2.6/; revision=8337
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | debian/patches/bugfix/sparc/e450-boot-failure.patch | 66 | ||||
-rw-r--r-- | debian/patches/series/12 | 1 |
3 files changed, 73 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index 73b5d66d421c..a9c1de8f4bf3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,17 @@ linux-2.6 (2.6.18.dfsg.1-12) UNRELEASED; urgency=low + [ Steve Langasek ] * Set CONFIG_MATHEMU=y on alpha, which is required for proper fp math on at least ev4-ev56 systems. Closes: #411813. * linux-image packages need to depend on a newer version of coreutils, because of the use of readlink -q -m inherited from kernel-package. Closes: #413311. + [ Jurij Smakov ] + * Add bugfix/sparc/e450-boot-failure.patch to fix boot failure on + E450 machines. Thanks to David Miller for the patch and to Daniel + Smolik for testing. + -- Steve Langasek <vorlon@debian.org> Mon, 5 Mar 2007 00:25:35 -0800 linux-2.6 (2.6.18.dfsg.1-11) unstable; urgency=low diff --git a/debian/patches/bugfix/sparc/e450-boot-failure.patch b/debian/patches/bugfix/sparc/e450-boot-failure.patch new file mode 100644 index 000000000000..c1f32e30ae7c --- /dev/null +++ b/debian/patches/bugfix/sparc/e450-boot-failure.patch @@ -0,0 +1,66 @@ +Author : David Miller <davem@davemloft.net> +Date : Mon, 26 Feb 2007 14:08:39 -0800 (PST) +Message-ID : <20070226.140839.69219235.davem@davemloft.net> +Status : confirmed working +Description : fixes boot failure on E450 machines + +diff -aur a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c +--- a/arch/sparc64/kernel/of_device.c 2006-09-20 06:42:06.000000000 +0300 ++++ b/arch/sparc64/kernel/of_device.c 2007-03-09 14:58:57.000000000 +0200 +@@ -686,7 +686,7 @@ + unsigned int irq) + { + struct linux_prom_pci_registers *regs; +- unsigned int devfn, slot, ret; ++ unsigned int bus, devfn, slot, ret; + + if (irq < 1 || irq > 4) + return irq; +@@ -695,10 +695,46 @@ + if (!regs) + return irq; + ++ bus = (regs->phys_hi >> 16) & 0xff; + devfn = (regs->phys_hi >> 8) & 0xff; + slot = (devfn >> 3) & 0x1f; + +- ret = ((irq - 1 + (slot & 3)) & 3) + 1; ++ if (pp->irq_trans) { ++ /* Derived from Table 8-3, U2P User's Manual. This branch ++ * is handling a PCI controller that lacks a proper set of ++ * interrupt-map and interrupt-map-mask properties. The ++ * Ultra-E450 is one example. ++ * ++ * The bit layout is BSSLL, where: ++ * B: 0 on bus A, 1 on bus B ++ * D: 2-bit slot number, derived from PCI device number as ++ * (dev - 1) for bus A, or (dev - 2) for bus B ++ * L: 2-bit line number ++ * ++ * Actually, more "portable" way to calculate the funky ++ * slot number is to subtract pbm->pci_first_slot from the ++ * device number, and that's exactly what the pre-OF ++ * sparc64 code did, but we're building this stuff generically ++ * using the OBP tree, not in the PCI controller layer. ++ */ ++ if (bus & 0x80) { ++ /* PBM-A */ ++ bus = 0x00; ++ slot = (slot - 1) << 2; ++ } else { ++ /* PBM-B */ ++ bus = 0x10; ++ slot = (slot - 2) << 2; ++ } ++ irq -= 1; ++ ++ ret = (bus | slot | irq); ++ } else { ++ /* Going through a PCI-PCI bridge that lacks a set of ++ * interrupt-map and interrupt-map-mask properties. ++ */ ++ ret = ((irq - 1 + (slot & 3)) & 3) + 1; ++ } + + return ret; + } diff --git a/debian/patches/series/12 b/debian/patches/series/12 new file mode 100644 index 000000000000..6ef5fd69e175 --- /dev/null +++ b/debian/patches/series/12 @@ -0,0 +1 @@ ++ bugfix/sparc/e450-boot-failure.patch |