rpms/kernel-xen/devel linux-2.6-g5-thermal-overload.patch, NONE, 1.1.2.1 linux-2.6-usb-suspend.patch, NONE, 1.1.2.1 patch-2.6.15-rc5-git7.bz2.sign, NONE, 1.1.2.1 .cvsignore, 1.3.2.4, 1.3.2.5 kernel-xen.spec, 1.13.2.12, 1.13.2.13 linux-2.6-cell-idle-pmgt.patch, 1.1.2.1, 1.1.2.2 sources, 1.3.2.4, 1.3.2.5 upstream, 1.1.2.3, 1.1.2.4 patch-2.6.15-rc5-git5.bz2.sign, 1.1.2.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Dec 19 12:53:00 UTC 2005


Author: quintela

Update of /cvs/dist/rpms/kernel-xen/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv18657

Modified Files:
      Tag: private-kernel-xen-2_6_12-1_13_FC5-sct-branch
	.cvsignore kernel-xen.spec linux-2.6-cell-idle-pmgt.patch 
	sources upstream 
Added Files:
      Tag: private-kernel-xen-2_6_12-1_13_FC5-sct-branch
	linux-2.6-g5-thermal-overload.patch 
	linux-2.6-usb-suspend.patch patch-2.6.15-rc5-git7.bz2.sign 
Removed Files:
      Tag: private-kernel-xen-2_6_12-1_13_FC5-sct-branch
	patch-2.6.15-rc5-git5.bz2.sign 
Log Message:
rebase to rawhide kernel-2.6.14-1.1773

linux-2.6-g5-thermal-overload.patch:
 therm_pm72.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

--- NEW FILE linux-2.6-g5-thermal-overload.patch ---
>From benh at kernel.crashing.org Mon Dec 19 00:47:09 2005
Return-path: <benh at kernel.crashing.org>
Envelope-to: dwmw2 at baythorne.infradead.org
Delivery-date: Mon, 19 Dec 2005 00:47:09 +0000
Received: from [2002:d592:9a28::1] (helo=pentafluge.infradead.org) by
	baythorne.infradead.org with esmtps (Exim 4.54 #1 (Red Hat Linux)) id
	1Eo9BF-0004Iq-MP for dwmw2 at baythorne.infradead.org; Mon, 19 Dec 2005
	00:47:09 +0000
Received: from [2002:3fe4:139::1] (helo=gate.crashing.org) by
	pentafluge.infradead.org with esmtps (Exim 4.54 #1 (Red Hat Linux)) id
	1Eo9BE-0008DS-8N for dwmw2 at infradead.org; Mon, 19 Dec 2005 00:47:09 +0000
Received: from gaston (localhost [127.0.0.1]) by gate.crashing.org
	(8.12.8/8.12.8) with ESMTP id jBJ0eDWG016389; Sun, 18 Dec 2005 18:40:16
	-0600
Subject: [Fwd: [PATCH] powerpc: g5 thermal overtemp bug]
From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
To: Olaf Hering <olh at suse.de>, David Woodhouse <dwmw2 at infradead.org>, Sven Luther <sven.luther at wanadoo.fr>
Content-Type: text/plain
Date: Mon, 19 Dec 2005 11:39:30 +1100
Message-Id: <1134952771.6102.128.camel at gaston>
Mime-Version: 1.0
X-Mailer: Evolution 2.2.3 
X-Spam-Score: -2.8 (--)
X-Spam-Report: SpamAssassin version 3.0.4 on pentafluge.infradead.org
	summary: Content analysis details:   (-2.8 points, 5.0 required) pts rule
	name              description ---- ----------------------
	-------------------------------------------------- -2.8 ALL_TRUSTED        
	   Did not pass through any untrusted hosts
X-Evolution-Source: imap://dwmw2@pentafluge.infradead.org/
Content-Transfer-Encoding: 8bit

Figure that might interest distros ...

-------- Forwarded Message --------
From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
To: Linus Torvalds <torvalds at osdl.org>
Cc: Markus Rothe <markus at unixforces.net>, Owen Stampflee
<ostampflee at terrasoftsolutions.com>, linuxppc64-dev
<linuxppc64-dev at ozlabs.org>, Linux Kernel list
<linux-kernel at vger.kernel.org>
Subject: [PATCH] powerpc: g5 thermal overtemp bug
Date: Mon, 19 Dec 2005 11:24:57 +1100

The g5 thermal control for liquid cooled machines has a small bug, when
the temperatures gets too high, it boosts all fans to the max, but
incorrectly sets the liquids pump to the min instead of the max speed,
thus causing the overtemp condition not to clear and the machine to shut
down after a while. This fixes it to set the pumps to max speed instead.
This problem might explain some of the reports of random shutdowns that
some g5 users have been reporting in the past.

Many thanks to Marcus Rothe for spending a lot of time trying various
patches & sending log logs before I found out that typo. Note that
overtemp handling is still not perfect and the machine might still
shutdown, that patch should reduce if not eliminate such occcurences in
"normal" conditions with high load. I'll implement a better handling
with proper slowing down of the CPUs later.

Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>

Index: linux-work/drivers/macintosh/therm_pm72.c
===================================================================
--- linux-work.orig/drivers/macintosh/therm_pm72.c	2005-11-10 08:20:14.000000000 +1100
+++ linux-work/drivers/macintosh/therm_pm72.c	2005-12-19 11:20:39.000000000 +1100
@@ -933,7 +933,7 @@
 	if (state0->overtemp > 0) {
 		state0->rpm = state0->mpu.rmaxn_exhaust_fan;
 		state0->intake_rpm = intake = state0->mpu.rmaxn_intake_fan;
-		pump = state0->pump_min;
+		pump = state0->pump_max;
 		goto do_set_fans;
 	}
 



linux-2.6-usb-suspend.patch:
 usb.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

--- NEW FILE linux-2.6-usb-suspend.patch ---
>From stern at rowland.harvard.edu Wed Dec 14 09:39:01 2005
Date: Wed, 14 Dec 2005 12:22:17 -0500 (EST)
From: Alan Stern <stern at rowland.harvard.edu>
To: Greg KH <greg at kroah.com>
cc: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2005 at gmx.net>
Subject: [PATCH] usbcore: allow suspend/resume even if drivers don't support it
Message-ID: <Pine.LNX.4.44L0.0512141215510.7421-100000 at iolanthe.rowland.org>

This patch (as618) changes usbcore to prevent derailing the
suspend/resume sequence when a USB driver doesn't include support for
it.  This is a workaround rather than a true fix; the core needs to be
changed so that URB submissions from suspended drivers can be refused
and outstanding URBs cancelled.

Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>

---
 drivers/usb/core/usb.c |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--- gregkh-2.6.orig/drivers/usb/core/usb.c
+++ gregkh-2.6/drivers/usb/core/usb.c
@@ -1029,7 +1029,8 @@ static int usb_generic_suspend(struct de
 			mark_quiesced(intf);
 	} else {
 		// FIXME else if there's no suspend method, disconnect...
-		dev_warn(dev, "no %s?\n", "suspend");
+		dev_warn(dev, "no suspend for driver %s?\n", driver->name);
+		mark_quiesced(intf);
 		status = 0;
 	}
 	return status;
@@ -1057,8 +1058,10 @@ static int usb_generic_resume(struct dev
 	}
 
 	if ((dev->driver == NULL) ||
-	    (dev->driver_data == &usb_generic_driver_data))
+	    (dev->driver_data == &usb_generic_driver_data)) {
+		dev->power.power_state.event = PM_EVENT_FREEZE;
 		return 0;
+	}
 
 	intf = to_usb_interface(dev);
 	driver = to_usb_driver(dev->driver);
@@ -1078,7 +1081,7 @@ static int usb_generic_resume(struct dev
 			mark_quiesced(intf);
 		}
 	} else
-		dev_warn(dev, "no %s?\n", "resume");
+		dev_warn(dev, "no resume for driver %s?\n", driver->name);
 	return 0;
 }
 


--- NEW FILE patch-2.6.15-rc5-git7.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info

iD8DBQBDo8kMyGugalF9Dw4RAisTAJ9drV5g2+vWMsoEGL5+RMfTRsqV0ACcDcj2
Qzx2aezRoDQc3rY3EdnaDi4=
=6Dlu
-----END PGP SIGNATURE-----


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/.cvsignore,v
retrieving revision 1.3.2.4
retrieving revision 1.3.2.5
diff -u -r1.3.2.4 -r1.3.2.5
--- .cvsignore	15 Dec 2005 21:42:09 -0000	1.3.2.4
+++ .cvsignore	19 Dec 2005 12:52:57 -0000	1.3.2.5
@@ -4,5 +4,5 @@
 linux-2.6.14.tar.bz2
 xen-20051206.tar.bz2
 patch-2.6.15-rc4.bz2
-patch-2.6.15-rc5-git5.bz2
+patch-2.6.15-rc5-git7.bz2
 patch-2.6.15-rc5.bz2


Index: kernel-xen.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/kernel-xen.spec,v
retrieving revision 1.13.2.12
retrieving revision 1.13.2.13
diff -u -r1.13.2.12 -r1.13.2.13
--- kernel-xen.spec	16 Dec 2005 20:19:07 -0000	1.13.2.12
+++ kernel-xen.spec	19 Dec 2005 12:52:57 -0000	1.13.2.13
@@ -214,7 +214,7 @@
 # Patches 0 through 100 are meant for core subsystem upgrades
 #
 Patch1: patch-2.6.15-rc5.bz2
-Patch2: patch-2.6.15-rc5-git5.bz2
+Patch2: patch-2.6.15-rc5-git7.bz2
 
 # Patches 100 through 500 are meant for architecture patches
 Patch100: linux-2.6-bzimage.patch
@@ -245,6 +245,7 @@
 Patch314: linux-2.6-ppc-rtas-check.patch
 Patch315: linux-2.6-powerpc-parport.patch
 Patch316: linux-2.6-cell-iommu.patch
+Patch317: linux-2.6-g5-thermal-overload.patch
 
 # 400 - 499   ia64
 # 500 - 599   s390(x)
@@ -364,6 +365,7 @@
 Patch1760: linux-2.6-sata-enable-atapi-by-default.patch
 Patch1770: linux-2.6-valid-ether-addr.patch
 Patch1780: linux-2.6-firmware-loader-timeout.patch
+Patch1790: linux-2.6-usb-suspend.patch
 
 # ACPI patches.
 Patch1800: linux-2.6-acpi-thinkpad-c2c3.patch
@@ -661,6 +663,8 @@
 %patch315 -p1
 # Handle new Cell boards with >512MiB RAM
 %patch316 -p1
+# Fix thermal overload on liquid-cooled G5s
+%patch317 -p1
 
 #
 # Xen
@@ -845,6 +849,8 @@
 %patch1770 -p1
 # Increase timeout on firmware loader.
 %patch1780 -p1
+# Fix USB suspend with devices that have no suspend method
+%patch1790 -p1
 
 # ACPI patches.
 # Blacklist another 'No C2/C3 states' Thinkpad R40e BIOS.
@@ -1372,6 +1378,20 @@
 %endif
 
 %changelog
+* Mon Dec 19 2005 David Woodhouse <dwmw2 at redhat.com>
+- Fix thermal overload on liquid-cooled G5s
+- Fix USB suspend
+- Disable floppy driver on ppc32
+
+* Sat Dec 17 2005 Dave Jones <davej at redhat.com>
+- 2.6.15-rc5-git7
+
+* Fri Dec 16 2005 David Woodhouse <dwmw2 at redhat.com>
+- Update to fixed Cell pause_zero code
+
+* Fri Dec 16 2005 Dave Jones <davej at redhat.com>
+- 2.6.15-rc5-git6
+
 * Fri Dec 16 2005 Dave Jones <davej at redhat.com>
 - If we oops, pause a while before doing anything
   so that people get a chance to grab the debug info.

linux-2.6-cell-idle-pmgt.patch:
 arch/powerpc/kernel/cputable.c          |    2 
 arch/powerpc/kernel/traps.c             |    4 
 arch/powerpc/platforms/cell/Makefile    |    2 
 arch/powerpc/platforms/cell/pervasive.c |  216 ++++++++++++++++++++++++++++++++
 arch/powerpc/platforms/cell/pervasive.h |   62 +++++++++
 arch/powerpc/platforms/cell/setup.c     |    2 
 include/asm-powerpc/cputable.h          |    4 
 include/asm-powerpc/reg.h               |   22 ++-
 8 files changed, 306 insertions(+), 8 deletions(-)

Index: linux-2.6-cell-idle-pmgt.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/Attic/linux-2.6-cell-idle-pmgt.patch,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- linux-2.6-cell-idle-pmgt.patch	15 Dec 2005 16:26:37 -0000	1.1.2.1
+++ linux-2.6-cell-idle-pmgt.patch	19 Dec 2005 12:52:57 -0000	1.1.2.2
@@ -1,5 +1,3 @@
-Subject: cell: enable pause(0) in cpu_idle
-
 This patch enables support for pause(0) power management state
 for the Cell Broadband Processor, which is import for power efficient
 operation. The pervasive infrastructure will in the future enable
@@ -24,7 +22,7 @@
 ===================================================================
 --- /dev/null
 +++ linux-2.6.15-rc/arch/powerpc/platforms/cell/pervasive.c
-@@ -0,0 +1,147 @@
+@@ -0,0 +1,216 @@
 +/*
 + * CBE Pervasive Monitor and Debug
 + *
@@ -48,135 +46,204 @@
 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 + */
 +
++#undef DEBUG
++
 +#include <linux/config.h>
 +#include <linux/interrupt.h>
 +#include <linux/irq.h>
 +#include <linux/percpu.h>
 +#include <linux/types.h>
++#include <linux/kallsyms.h>
 +
 +#include <asm/io.h>
++#include <asm/machdep.h>
 +#include <asm/prom.h>
 +#include <asm/pgtable.h>
 +#include <asm/reg.h>
 +
 +#include "pervasive.h"
 +
-+struct pmd {
++static spinlock_t cbe_pervasive_lock;
++struct cbe_pervasive {
 +	struct pmd_regs __iomem *regs;
-+	int power_management_enable;
++	unsigned int thread;
 +};
 +
-+static DEFINE_PER_CPU(struct pmd, pmd);
-+
-+void pause_zero(void)
-+{
-+	unsigned int multi_threading_control;
-+	unsigned long long machine_state;
-+
-+	/* Reset Thread Run Latch (latch is set in idle.c) */
-+	ppc64_runlatch_off();
-+
-+	if (__get_cpu_var(pmd).power_management_enable)
-+	{
-+		/* Disable EE during check for pause */
-+		machine_state=mfmsr();
-+		machine_state &= ~MSR_EE;
-+		mtmsrd(machine_state);
-+		/* Pause the PU */
-+		HMT_low();
-+		multi_threading_control = 0;
-+		mtspr(SPRN_CTRLT,multi_threading_control);
-+
-+		/* Re-enable EE after resuming */
-+		machine_state=mfmsr();
-+		machine_state |= MSR_EE;
-+		mtmsrd(machine_state);
-+	}
-+}
++/* can't use per_cpu from setup_arch */
++static struct cbe_pervasive cbe_pervasive[NR_CPUS];
 +
-+void enable_pause_zero(void * data)
++static void __init cbe_enable_pause_zero(void)
 +{
 +	unsigned long thread_switch_control;
 +	unsigned long temp_register;
-+	struct pmd *pmd;
++	struct cbe_pervasive *p;
++	int thread;
 +
-+	pmd = &get_cpu_var(pmd);
++	p = &cbe_pervasive[get_cpu()];
++	spin_lock_irq(&cbe_pervasive_lock);
 +
-+	if (!pmd->regs)
-+		return;
++	if (!cbe_pervasive->regs)
++		goto out;
 +
 +	pr_debug("Power Management: CPU %d\n", smp_processor_id());
 +
 +	 /* Enable Pause(0) control bit */
-+	temp_register = in_be64(&pmd->regs->pm_control);
++	temp_register = in_be64(&p->regs->pm_control);
 +
-+	out_be64(&pmd->regs->pm_control, temp_register|PMD_PAUSE_ZERO_CONTROL);
++	out_be64(&p->regs->pm_control,
++		 temp_register|PMD_PAUSE_ZERO_CONTROL);
 +
 +	/* Enable DEC and EE interrupt request */
 +	thread_switch_control  = mfspr(SPRN_TSC_CELL);
-+	thread_switch_control |= TSCR_EE_ENABLE | TSCR_EE_BOOST;
++	thread_switch_control |= TSC_CELL_EE_ENABLE | TSC_CELL_EE_BOOST;
++
++	switch ((mfspr(SPRN_CTRLF) & CTRL_CT)) {
++	case CTRL_CT0:
++		thread_switch_control |= TSC_CELL_DEC_ENABLE_0;
++		thread = 0;
++		break;
++	case CTRL_CT1:
++		thread_switch_control |= TSC_CELL_DEC_ENABLE_1;
++		thread = 1;
++		break;
++	default:
++		printk(KERN_WARNING "%s: unknown configuration\n",
++			__FUNCTION__);
++		thread = -1;
++		break;
++	}
 +
-+	if (smp_processor_id()%2)
-+		thread_switch_control |= TSC_DEC_ENABLE_1;
-+	else
-+		thread_switch_control |= TSC_DEC_ENABLE_0;
++	if (p->thread != thread)
++		printk(KERN_WARNING "%s: device tree inconsistant, "
++				     "cpu %i: %d/%d\n", __FUNCTION__,
++				     smp_processor_id(),
++				     p->thread, thread);
 +
 +	mtspr(SPRN_TSC_CELL, thread_switch_control);
 +
-+	pmd->power_management_enable = 1;
-+	put_cpu_var(pmd);
++out:
++	spin_unlock_irq(&cbe_pervasive_lock);
++	put_cpu();
++}
++
++static void cbe_idle(void)
++{
++	unsigned long ctrl;
++
++	cbe_enable_pause_zero();
++
++	while (1) {
++		if (!need_resched()) {
++			while (!need_resched()) {
++				/* go into low thread priority */
++				HMT_low();
++
++				/* go into low power mode */
++				local_irq_disable();
++				ctrl = mfspr(SPRN_CTRLF);
++				ctrl &= ~(CTRL_RUNLATCH | CTRL_TE);
++				mtspr(SPRN_CTRLT, ctrl);
++				local_irq_enable();
++			}
++			/* restore thread prio */
++			HMT_medium();
++		}
++
++		ppc64_runlatch_on();
++		preempt_enable_no_resched();
++		schedule();
++		preempt_disable();
++	}
++}
++
++void cbe_system_reset_exception(struct pt_regs *regs)
++{
++	switch (regs->msr & SRR1_WAKEMASK) {
++	case SRR1_WAKEEE:
++		do_IRQ(regs);
++		break;
++	case SRR1_WAKEDEC:
++		timer_interrupt(regs);
++		break;
++	case SRR1_WAKEMT:
++		/* no action required */
++		break;
++	default:
++		die("System Reset", regs, SIGABRT);
++	}
 +}
 +
-+static struct pmd_regs __iomem *find_pmd_mmio(int cpu)
++static int __init cbe_find_pmd_mmio(int cpu, struct cbe_pervasive *p)
 +{
 +	struct device_node *node;
-+	int node_number = cpu / 2;
-+	struct pmd_regs __iomem *pmd_mmio_area;
++	unsigned int *int_servers;
++	char *addr;
 +	unsigned long real_address;
++	unsigned int size;
 +
-+	for (node = of_find_node_by_type(NULL, "cpu"); node;
-+		node = of_find_node_by_type(node, "cpu")) {
-+			if (node_number == *(int *)get_property(node, "node-id", NULL))
-+			break;
-+	}
++	struct pmd_regs __iomem *pmd_mmio_area;
++	int hardid, thread;
++	int proplen;
 +
-+	if (!node) {
-+		printk(KERN_WARNING "PMD: CPU %d not found\n", cpu);
-+		pmd_mmio_area = NULL;
-+	} else {
-+		real_address = *(long *)get_property(node, "pervasive", NULL);
-+		pr_debug("PMD for CPU %d at %lx\n", cpu, real_address);
-+		pmd_mmio_area = __ioremap(real_address, 0x1000, _PAGE_NO_CACHE);
++	pmd_mmio_area = NULL;
++	hardid = get_hard_smp_processor_id(cpu);
++	for (node = NULL; (node = of_find_node_by_type(node, "cpu"));) {
++		int_servers = (void *) get_property(node,
++				"ibm,ppc-interrupt-server#s", &proplen);
++		if (!int_servers) {
++			printk(KERN_WARNING "CPU device misses "
++				"ibm,ppc-interrupt-server#s property");
++			continue;
++		}
++		for (thread = 0; thread < proplen / sizeof (int); thread++) {
++			if (hardid == int_servers[thread]) {
++				addr = get_property(node, "pervasive", NULL);
++				goto found;
++			}
++		}
 +	}
-+	return pmd_mmio_area;
++
++	printk(KERN_WARNING "%s: CPU %d not found\n", __FUNCTION__, cpu);
++	return -EINVAL;
++
++found:
++	real_address = *(unsigned long*) addr;
++	addr += sizeof (unsigned long);
++	size = *(unsigned int*) addr;
++
++	pr_debug("pervasive area for CPU %d at %lx, size %x\n",
++			cpu, real_address, size);
++	p->regs = __ioremap(real_address, size, _PAGE_NO_CACHE);
++	p->thread = thread;
++	return 0;
 +}
 +
 +void __init cell_pervasive_init(void)
 +{
-+	struct pmd *pmd;
++	struct cbe_pervasive *p;
 +	int cpu;
++	int ret;
++
++	spin_lock_init(&cbe_pervasive_lock);
 +
-+	if (!cpu_has_feature(CPU_FTR_PAUSE_ZERO) || !__onsim())
++	if (!cpu_has_feature(CPU_FTR_PAUSE_ZERO))
 +		return;
 +
 +	for_each_cpu(cpu) {
-+		pmd = &per_cpu(pmd, cpu);
-+		pmd->regs = find_pmd_mmio(cpu);
++		p = &cbe_pervasive[cpu];
++		ret = cbe_find_pmd_mmio(cpu, p);
++		if (ret)
++			return;
 +	}
-+}
 +
-+int __init enable_pause_zero_init(void)
-+{
-+	on_each_cpu(enable_pause_zero, NULL, 0, 1);
-+	return 0;
++	ppc_md.idle_loop = cbe_idle;
++	ppc_md.system_reset_exception = cbe_system_reset_exception;
 +}
-+
-+arch_initcall(enable_pause_zero_init);
 Index: linux-2.6.15-rc/arch/powerpc/platforms/cell/pervasive.h
 ===================================================================
 --- /dev/null
 +++ linux-2.6.15-rc/arch/powerpc/platforms/cell/pervasive.h
-@@ -0,0 +1,64 @@
+@@ -0,0 +1,62 @@
 +/*
 + * Cell Pervasive Monitor and Debug interface and HW structures
 + *
@@ -237,8 +304,6 @@
 +};
 +
 +void __init cell_pervasive_init(void);
-+void enable_pause_zero(void *);
-+void _pause_zero(void);
 +
 +#endif
 Index: linux-2.6.15-rc/arch/powerpc/platforms/cell/setup.c
@@ -261,65 +326,6 @@
  #ifdef CONFIG_DUMMY_CONSOLE
  	conswitchp = &dummy_con;
  #endif
-Index: linux-2.6.15-rc/arch/powerpc/kernel/head_64.S
-===================================================================
---- linux-2.6.15-rc.orig/arch/powerpc/kernel/head_64.S
-+++ linux-2.6.15-rc/arch/powerpc/kernel/head_64.S
-@@ -383,7 +383,7 @@ label##_common:						\
- 	.globl __start_interrupts
- __start_interrupts:
- 
--	STD_EXCEPTION_PSERIES(0x100, system_reset)
-+	STD_EXCEPTION_PSERIES(0x100, system_reset_check)
- 
- 	. = 0x200
- _machine_check_pSeries:
-@@ -860,6 +860,31 @@ unrecov_fer:
- 	bl	.unrecoverable_exception
- 	b	1b
- 
-+/* This is a new system reset handler for the BE processor.
-+ * SRR1 stores wake information that must be decoded to determine why
-+ * the processor was at the system reset handler.
-+ */
-+
-+	.align 7
-+	.globl system_reset_check_common
-+system_reset_check_common:
-+BEGIN_FTR_SECTION
-+	mr	r22,r12    /* r12 has SRR1 saved */
-+	srwi	r22,r22,16
-+	andi.	r22,r22,MSR_WAKEMASK
-+	cmpwi	r22,MSR_WAKEEE
-+	beq	40f
-+	cmpwi	r22,MSR_WAKEDEC
-+	beq	42f
-+	cmpwi	r22,MSR_WAKEMT
-+	beq	43f
-+END_FTR_SECTION_IFSET(CPU_FTR_PAUSE_ZERO)
-+	b	system_reset_common
-+40:	b	hardware_interrupt_common
-+42:	b	decrementer_common
-+43: 	EXCEPTION_PROLOG_COMMON(0x100, PACA_EXGEN);
-+	b	fast_exception_return
-+
- /*
-  * Here r13 points to the paca, r9 contains the saved CR,
-  * SRR0 and SRR1 are saved in r11 and r12,
-Index: linux-2.6.15-rc/arch/powerpc/kernel/idle_64.c
-===================================================================
---- linux-2.6.15-rc.orig/arch/powerpc/kernel/idle_64.c
-+++ linux-2.6.15-rc/arch/powerpc/kernel/idle_64.c
-@@ -40,7 +40,8 @@ void default_idle(void)
- 		if (!need_resched()) {
- 			while (!need_resched() && !cpu_is_offline(cpu)) {
- 				ppc64_runlatch_off();
--
-+				if (cpu_has_feature(CPU_FTR_PAUSE_ZERO))
-+					pause_zero();
- 				/*
- 				 * Go into low thread priority and possibly
- 				 * low power mode.
 Index: linux-2.6.15-rc/include/asm-powerpc/cputable.h
 ===================================================================
 --- linux-2.6.15-rc.orig/include/asm-powerpc/cputable.h
@@ -342,56 +348,83 @@
  	CPU_FTRS_COMPATIBLE = CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB |
  	    CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2,
  #endif
-Index: linux-2.6.15-rc/include/asm-powerpc/processor.h
-===================================================================
---- linux-2.6.15-rc.orig/include/asm-powerpc/processor.h
-+++ linux-2.6.15-rc/include/asm-powerpc/processor.h
-@@ -281,6 +281,14 @@ static inline void prefetchw(const void 
- #define HAVE_ARCH_PICK_MMAP_LAYOUT
- #endif
- 
-+#ifdef CONFIG_PPC_CELL
-+extern void pause_zero(void);
-+#else
-+static inline void pause_zero(void)
-+{
-+}
-+#endif
-+
- #endif /* __KERNEL__ */
- #endif /* __ASSEMBLY__ */
- #endif /* _ASM_POWERPC_PROCESSOR_H */
 Index: linux-2.6.15-rc/include/asm-powerpc/reg.h
 ===================================================================
 --- linux-2.6.15-rc.orig/include/asm-powerpc/reg.h
 +++ linux-2.6.15-rc/include/asm-powerpc/reg.h
-@@ -92,6 +92,15 @@
- #define MSR_RI		__MASK(MSR_RI_LG)	/* Recoverable Exception */
- #define MSR_LE		__MASK(MSR_LE_LG)	/* Little Endian */
- 
-+/* Wake Events */
-+#define MSR_WAKEMASK	0x0038
-+#define MSR_WAKERESET	0x0038
-+#define MSR_WAKESYSERR	0x0030
-+#define MSR_WAKEEE	0x0020
-+#define MSR_WAKEMT	0x0028
-+#define MSR_WAKEDEC	0x0018
-+#define MSR_WAKETHERM	0x0010
-+
- #ifdef CONFIG_PPC64
- #define MSR_		MSR_ME | MSR_RI | MSR_IR | MSR_DR | MSR_ISF
- #define MSR_KERNEL      MSR_ | MSR_SF | MSR_HV
-@@ -257,9 +266,10 @@
+@@ -145,6 +145,10 @@
+ #define SPRN_CTR	0x009	/* Count Register */
+ #define SPRN_CTRLF	0x088
+ #define SPRN_CTRLT	0x098
++#define   CTRL_CT	0xc0000000	/* current thread */
++#define   CTRL_CT0	0x80000000	/* thread 0 */
++#define   CTRL_CT1	0x40000000	/* thread 1 */
++#define   CTRL_TE	0x00c00000	/* thread enable */
+ #define   CTRL_RUNLATCH	0x1
+ #define SPRN_DABR	0x3F5	/* Data Address Breakpoint Register */
+ #define   DABR_TRANSLATION	(1UL << 2)
+@@ -257,11 +261,11 @@
  #define	SPRN_HID6	0x3F9	/* BE HID 6 */
  #define	  HID6_LB	(0x0F<<12) /* Concurrent Large Page Modes */
  #define	  HID6_DLP	(1<<20)	/* Disable all large page modes (4K only) */
 -#define	SPRN_TSCR	0x399   /* Thread switch control on BE */
 -#define	SPRN_TTR	0x39A   /* Thread switch timeout on BE */
 -#define	  TSCR_DEC_ENABLE	0x200000 /* Decrementer Interrupt */
+-#define	  TSCR_EE_ENABLE	0x100000 /* External Interrupt */
+-#define	  TSCR_EE_BOOST		0x080000 /* External Interrupt Boost */
 +#define	SPRN_TSC_CELL	0x399	/* Thread switch control on Cell */
-+#define	SPRN_TTR	0x39A	/* Thread switch timeout on Cell */
-+#define	  TSC_DEC_ENABLE_0	0x400000 /* Decrementer Interrupt */
-+#define	  TSC_DEC_ENABLE_1	0x200000 /* Decrementer Interrupt */
- #define	  TSCR_EE_ENABLE	0x100000 /* External Interrupt */
- #define	  TSCR_EE_BOOST		0x080000 /* External Interrupt Boost */
++#define	  TSC_CELL_DEC_ENABLE_0	0x400000 /* Decrementer Interrupt */
++#define	  TSC_CELL_DEC_ENABLE_1	0x200000 /* Decrementer Interrupt */
++#define	  TSC_CELL_EE_ENABLE	0x100000 /* External Interrupt */
++#define	  TSC_CELL_EE_BOOST	0x080000 /* External Interrupt Boost */
  #define	SPRN_TSC 	0x3FD	/* Thread switch control on others */
+ #define	SPRN_TST 	0x3FC	/* Thread switch timeout on others */
+ #if !defined(SPRN_IAC1) && !defined(SPRN_IAC2)
+@@ -375,6 +379,14 @@
+ #define SPRN_SPRG7	0x117	/* Special Purpose Register General 7 */
+ #define SPRN_SRR0	0x01A	/* Save/Restore Register 0 */
+ #define SPRN_SRR1	0x01B	/* Save/Restore Register 1 */
++#define   SRR1_WAKEMASK		0x00380000 /* reason for wakeup */
++#define   SRR1_WAKERESET	0x00380000 /* System reset */
++#define   SRR1_WAKESYSERR	0x00300000 /* System error */
++#define   SRR1_WAKEEE		0x00200000 /* External interrupt */
++#define   SRR1_WAKEMT		0x00280000 /* mtctrl */
++#define   SRR1_WAKEDEC		0x00180000 /* Decrementer interrupt */
++#define   SRR1_WAKETHERM	0x00100000 /* Thermal management interrupt */
++
+ #ifndef SPRN_SVR
+ #define SPRN_SVR	0x11E	/* System Version Register */
+ #endif
+Index: linux-2.6.15-rc/arch/powerpc/kernel/cputable.c
+===================================================================
+--- linux-2.6.15-rc.orig/arch/powerpc/kernel/cputable.c
++++ linux-2.6.15-rc/arch/powerpc/kernel/cputable.c
+@@ -273,7 +273,7 @@ struct cpu_spec	cpu_specs[] = {
+ 		.oprofile_model		= &op_model_power4,
+ #endif
+ 	},
+-	{	/* BE DD1.x */
++	{	/* Cell Broadband Engine */
+ 		.pvr_mask		= 0xffff0000,
+ 		.pvr_value		= 0x00700000,
+ 		.cpu_name		= "Cell Broadband Engine",
+Index: linux-2.6.15-rc/arch/powerpc/kernel/traps.c
+===================================================================
+--- linux-2.6.15-rc.orig/arch/powerpc/kernel/traps.c
++++ linux-2.6.15-rc/arch/powerpc/kernel/traps.c
+@@ -230,8 +230,10 @@ void _exception(int signr, struct pt_reg
+ void system_reset_exception(struct pt_regs *regs)
+ {
+ 	/* See if any machine dependent calls */
+-	if (ppc_md.system_reset_exception)
++	if (ppc_md.system_reset_exception) {
+ 		ppc_md.system_reset_exception(regs);
++		return;
++	}
+ 
+ 	die("System Reset", regs, SIGABRT);
+ 
+_______________________________________________
+Linuxppc64-dev mailing list
+Linuxppc64-dev at ozlabs.org
+https://ozlabs.org/mailman/listinfo/linuxppc64-dev


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/sources,v
retrieving revision 1.3.2.4
retrieving revision 1.3.2.5
diff -u -r1.3.2.4 -r1.3.2.5
--- sources	15 Dec 2005 21:42:09 -0000	1.3.2.4
+++ sources	19 Dec 2005 12:52:57 -0000	1.3.2.5
@@ -1,4 +1,4 @@
 66d02cbd723876c6d69846a067875a22  linux-2.6.14.tar.bz2
 04385c8abed5541c0710b15393b79020  xen-20051206.tar.bz2
 d14ab78f5bd1f920d9088a5e50a78d7d  patch-2.6.15-rc5.bz2
-2317715e18364ed43654d30e46b137ca  patch-2.6.15-rc5-git5.bz2
+601926b68e0e73ecb15f4d01e7a5dfab  patch-2.6.15-rc5-git7.bz2


Index: upstream
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/Attic/upstream,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- upstream	15 Dec 2005 21:42:09 -0000	1.1.2.3
+++ upstream	19 Dec 2005 12:52:57 -0000	1.1.2.4
@@ -1,3 +1,3 @@
 linux-2.6.14.tar.bz2
 patch-2.6.15-rc5.bz2
-patch-2.6.15-rc5-git5.bz2
+patch-2.6.15-rc5-git7.bz2


--- patch-2.6.15-rc5-git5.bz2.sign DELETED ---




More information about the fedora-cvs-commits mailing list