[kernel] r8337 - in dists/sid/linux-2.6/debian: . patches/bugfix/sparc patches/series

Jurij Smakov jurij-guest at alioth.debian.org
Fri Mar 9 14:44:14 CET 2007


Author: jurij-guest
Date: Fri Mar  9 13:44:14 2007
New Revision: 8337

Added:
   dists/sid/linux-2.6/debian/patches/bugfix/sparc/e450-boot-failure.patch
   dists/sid/linux-2.6/debian/patches/series/12
Modified:
   dists/sid/linux-2.6/debian/changelog
Log:
* Add series/12
* Add e450-boot-failure.patch to fix boot failure on E450.


Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	(original)
+++ dists/sid/linux-2.6/debian/changelog	Fri Mar  9 13:44:14 2007
@@ -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 at debian.org>  Mon,  5 Mar 2007 00:25:35 -0800
 
 linux-2.6 (2.6.18.dfsg.1-11) unstable; urgency=low

Added: dists/sid/linux-2.6/debian/patches/bugfix/sparc/e450-boot-failure.patch
==============================================================================
--- (empty file)
+++ dists/sid/linux-2.6/debian/patches/bugfix/sparc/e450-boot-failure.patch	Fri Mar  9 13:44:14 2007
@@ -0,0 +1,66 @@
+Author		: David Miller <davem at davemloft.net>
+Date		: Mon, 26 Feb 2007 14:08:39 -0800 (PST)
+Message-ID	: <20070226.140839.69219235.davem at 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;
+ }

Added: dists/sid/linux-2.6/debian/patches/series/12
==============================================================================
--- (empty file)
+++ dists/sid/linux-2.6/debian/patches/series/12	Fri Mar  9 13:44:14 2007
@@ -0,0 +1 @@
++ bugfix/sparc/e450-boot-failure.patch



More information about the Kernel-svn-changes mailing list