rpms/kernel/devel linux-2.6-cpufreq-ppc-suspend-clusterfuck.patch, NONE, 1.1.2.2 patch-2.6.31-rc3.bz2.sign, NONE, 1.1.2.2 .cvsignore, 1.1014.2.20, 1.1014.2.21 config-generic, 1.238.6.29, 1.238.6.30 drm-nouveau.patch, 1.8.6.12, 1.8.6.13 kernel.spec, 1.1294.2.40, 1.1294.2.41 linux-2.6-compile-fixes.patch, 1.193.6.1, 1.193.6.2 sources, 1.976.2.21, 1.976.2.22 upstream, 1.888.2.20, 1.888.2.21 xen.pvops.patch, 1.1.2.27, 1.1.2.28 linux-2.6-dmadebug-spinlock.patch, 1.1.2.2, NONE patch-2.6.31-rc2-git4.bz2.sign, 1.1.2.2, NONE patch-2.6.31-rc2.bz2.sign, 1.1.2.2, NONE

myoung myoung at fedoraproject.org
Wed Jul 15 20:58:51 UTC 2009


Author: myoung

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25691

Modified Files:
      Tag: private-myoung-dom0-branch
	.cvsignore config-generic drm-nouveau.patch kernel.spec 
	linux-2.6-compile-fixes.patch sources upstream xen.pvops.patch 
Added Files:
      Tag: private-myoung-dom0-branch
	linux-2.6-cpufreq-ppc-suspend-clusterfuck.patch 
	patch-2.6.31-rc3.bz2.sign 
Removed Files:
      Tag: private-myoung-dom0-branch
	linux-2.6-dmadebug-spinlock.patch 
	patch-2.6.31-rc2-git4.bz2.sign patch-2.6.31-rc2.bz2.sign 
Log Message:
update pvops


linux-2.6-cpufreq-ppc-suspend-clusterfuck.patch:

--- NEW FILE linux-2.6-cpufreq-ppc-suspend-clusterfuck.patch ---
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 5cc77fb..8d3b3d1 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1288,6 +1288,14 @@ static int cpufreq_suspend(struct sys_device *sysdev, pm_message_t pmsg)
 
 	dprintk("suspending cpu %u\n", cpu);
 
+	/*
+	 * This whole bogosity is here because Powerbooks are made of fail.
+	 * No sane platform should need any of the code below to be run.
+	 * (it's entirely the wrong thing to do, as driver->get may
+	 *  reenable interrupts on some architectures).
+	 */
+
+#ifdef __powerpc__
 	if (!cpu_online(cpu))
 		return 0;
 
@@ -1346,6 +1354,7 @@ static int cpufreq_suspend(struct sys_device *sysdev, pm_message_t pmsg)
 
 out:
 	cpufreq_cpu_put(cpu_policy);
+#endif	/* __powerpc__ */
 	return ret;
 }
 
@@ -1365,6 +1374,11 @@ static int cpufreq_resume(struct sys_device *sysdev)
 
 	dprintk("resuming cpu %u\n", cpu);
 
+	/* As with the ->suspend method, all the code below is
+	 * only necessary because Powerbooks suck.
+	 * See commit 42d4dc3f4e1e for jokes. */
+#ifdef __powerpc__
+
 	if (!cpu_online(cpu))
 		return 0;
 
@@ -1428,6 +1442,7 @@ out:
 	schedule_work(&cpu_policy->update);
 fail:
 	cpufreq_cpu_put(cpu_policy);
+#endif	/* __powerpc__ */
 	return ret;
 }
 


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

iD8DBQBKW+DRyGugalF9Dw4RAsIPAJ9AM7RKZ20g4JmawZnqs+g7muodKgCghTQa
1R44RsEbaiDeFRCLS2WTn1A=
=ubmU
-----END PGP SIGNATURE-----


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/.cvsignore,v
retrieving revision 1.1014.2.20
retrieving revision 1.1014.2.21
diff -u -p -r1.1014.2.20 -r1.1014.2.21
--- .cvsignore	10 Jul 2009 19:04:29 -0000	1.1014.2.20
+++ .cvsignore	15 Jul 2009 20:58:03 -0000	1.1014.2.21
@@ -5,5 +5,4 @@ kernel-2.6.*.config
 temp-*
 kernel-2.6.30
 linux-2.6.30.tar.bz2
-patch-2.6.31-rc2.bz2
-patch-2.6.31-rc2-git4.bz2
+patch-2.6.31-rc3.bz2


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.238.6.29
retrieving revision 1.238.6.30
diff -u -p -r1.238.6.29 -r1.238.6.30
--- config-generic	10 Jul 2009 19:04:29 -0000	1.238.6.29
+++ config-generic	15 Jul 2009 20:58:03 -0000	1.238.6.30
@@ -356,6 +356,7 @@ CONFIG_BLK_DEV_UMEM=m
 CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_CRYPTOLOOP=m
 CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=16
 CONFIG_BLK_DEV_RAM_SIZE=16384
@@ -3966,6 +3967,7 @@ CONFIG_USB_ATMEL=m
 # CONFIG_LINE6_USB is not set
 # CONFIG_USB_SERIAL_QUATECH_ESU100 is not set
 # CONFIG_RT3070 is not set
+ CONFIG_RTL8192SU is not set
 
 #
 # Android

drm-nouveau.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -p -N -r 1.8.6.12 -r 1.8.6.13 drm-nouveau.patch
Index: drm-nouveau.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-nouveau.patch,v
retrieving revision 1.8.6.12
retrieving revision 1.8.6.13
diff -u -p -r1.8.6.12 -r1.8.6.13
--- drm-nouveau.patch	30 Jun 2009 18:06:00 -0000	1.8.6.12
+++ drm-nouveau.patch	15 Jul 2009 20:58:03 -0000	1.8.6.13
@@ -94,7 +94,7 @@ index 6246e3f..436e2fe 100644
  		if (map->type == _DRM_REGISTERS)
 diff --git a/drivers/gpu/drm/nouveau/Makefile b/drivers/gpu/drm/nouveau/Makefile
 new file mode 100644
-index 0000000..96688cf
+index 0000000..f5d93b5
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/Makefile
 @@ -0,0 +1,26 @@
@@ -105,7 +105,7 @@ index 0000000..96688cf
 +ccflags-y := -Iinclude/drm
 +nouveau-y := nouveau_drv.o nouveau_state.o nouveau_fifo.o nouveau_mem.o \
 +             nouveau_object.o nouveau_irq.o nouveau_notifier.o \
-+             nouveau_swmthd.o nouveau_sgdma.o nouveau_dma.o \
++             nouveau_sgdma.o nouveau_dma.o \
 +             nouveau_bo.o nouveau_fence.o nouveau_gem.o nouveau_ttm.o \
 +             nouveau_hw.o nouveau_calc.o nouveau_bios.o nouveau_i2c.o \
 +	     nouveau_display.o nouveau_fbcon.o nouveau_backlight.o \
@@ -286,10 +286,10 @@ index 0000000..395639b
 +}
 diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
 new file mode 100644
-index 0000000..f6628db
+index 0000000..f719eb4
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
-@@ -0,0 +1,4852 @@
+@@ -0,0 +1,4861 @@
 +/*
 + * Copyright 2005-2006 Erik Waling
 + * Copyright 2006 Stephane Marchesin
@@ -341,10 +341,10 @@ index 0000000..f6628db
 +/* this will need remembering across a suspend */
 +static uint32_t saved_nv_pfb_cfg0;
 +
-+typedef struct {
++struct init_exec {
 +	bool execute;
 +	bool repeat;
-+} init_exec_t;
++};
 +
 +static bool nv_cksum(const uint8_t *data, unsigned int length)
 +{
@@ -531,22 +531,22 @@ index 0000000..f6628db
 +	return false;
 +}
 +
-+typedef struct {
++struct init_tbl_entry {
 +	char* name;
 +	uint8_t id;
 +	int length;
 +	int length_offset;
 +	int length_multiplier;
-+	bool (*handler)(struct drm_device *dev, struct nvbios *, uint16_t, init_exec_t *);
-+} init_tbl_entry_t;
++	bool (*handler)(struct drm_device *dev, struct nvbios *, uint16_t, struct init_exec *);
++};
 +
-+typedef struct {
++struct bit_entry {
 +	uint8_t id[2];
 +	uint16_t length;
 +	uint16_t offset;
-+} bit_entry_t;
++};
 +
-+static int parse_init_table(struct drm_device *dev, struct nvbios *bios, unsigned int offset, init_exec_t *iexec);
++static int parse_init_table(struct drm_device *dev, struct nvbios *bios, unsigned int offset, struct init_exec *iexec);
 +
 +#define MACRO_INDEX_SIZE	2
 +#define MACRO_SIZE		8
@@ -581,68 +581,22 @@ index 0000000..f6628db
 +	struct drm_nouveau_private *dev_priv = dev->dev_private;
 +
 +	/* C51 has misaligned regs on purpose. Marvellous */
-+	if (reg & 0x2 || (reg & 0x1 && dev_priv->VBIOS.pub.chip_version != 0x51)) {
-+		NV_ERROR(dev, "========== misaligned reg 0x%08X ==========\n",
-+			 reg);
-+		return 0;
-+	}
-+	/* warn on C51 regs that haven't been verified accessible in mmiotracing */
++	if (reg & 0x2 ||
++	    (reg & 0x1 && dev_priv->VBIOS.pub.chip_version != 0x51))
++		NV_ERROR(dev, "======= misaligned reg 0x%08X =======\n", reg);
++
++	/* warn on C51 regs that haven't been verified accessible in tracing */
 +	if (reg & 0x1 && dev_priv->VBIOS.pub.chip_version == 0x51 &&
 +	    reg != 0x130d && reg != 0x1311 && reg != 0x60081d)
 +		NV_WARN(dev, "=== C51 misaligned reg 0x%08X not verified ===\n",
 +			reg);
 +
-+	#define WITHIN(x,y,z) ((x>=y)&&(x<=y+z))
-+	if (WITHIN(reg,NV_PMC_OFFSET,NV_PMC_SIZE))
-+		return 1;
-+	if (WITHIN(reg,NV_PBUS_OFFSET,NV_PBUS_SIZE))
-+		return 1;
-+	if (WITHIN(reg,NV_PFIFO_OFFSET,NV_PFIFO_SIZE))
-+		return 1;
-+	/* maybe a little large, but it will do for the moment. */
-+	if (nv_arch(dev) >= NV_50 && WITHIN(reg, 0x1000, 0xEFFF))
-+		return 1;
-+	if (dev_priv->VBIOS.pub.chip_version >= 0x30 && WITHIN(reg,0x4000,0x600))
-+		return 1;
-+	if (dev_priv->VBIOS.pub.chip_version >= 0x40 && WITHIN(reg,0xc000,0x48))
-+		return 1;
-+	if (dev_priv->VBIOS.pub.chip_version >= 0x17 && reg == 0x0000d204)
-+		return 1;
-+	if (dev_priv->VBIOS.pub.chip_version >= 0x40) {
-+		if (reg == 0x00011014 || reg == 0x00020328)
-+			return 1;
-+		if (WITHIN(reg,0x88000,NV_PBUS_SIZE)) /* new PBUS */
-+			return 1;
-+	}
-+	if (nv_arch(dev) >= NV_50) {
-+		/* No clue what they do, but because they are outside normal
-+		 * ranges we'd better list them seperately. */
-+		if (reg == 0x00020018 || reg == 0x0002004C ||
-+		    reg == 0x00020060 || reg == 0x00021218 ||
-+		    reg == 0x0002130C || reg == 0x00089008 ||
-+		    reg == 0x00089028)
-+			return 1;
++	if (reg >= (8*1024*1024)) {
++		NV_ERROR(dev, "=== reg 0x%08x out of mapped bounds ===\n", reg);
++		return 0;
 +	}
-+	if (WITHIN(reg,NV_PFB_OFFSET,NV_PFB_SIZE))
-+		return 1;
-+	if (WITHIN(reg,NV_PEXTDEV_OFFSET,NV_PEXTDEV_SIZE))
-+		return 1;
-+	if (WITHIN(reg,NV_PCRTC0_OFFSET,NV_PCRTC0_SIZE * 2))
-+		return 1;
-+	if (nv_arch(dev) >= NV_50 &&
-+	    WITHIN(reg, NV50_DISPLAY_OFFSET, NV50_DISPLAY_SIZE))
-+		return 1;
-+	if (WITHIN(reg,NV_PRAMDAC0_OFFSET,NV_PRAMDAC0_SIZE * 2))
-+		return 1;
-+	if (dev_priv->VBIOS.pub.chip_version >= 0x17 && reg == 0x0070fff0)
-+		return 1;
-+	if (dev_priv->VBIOS.pub.chip_version == 0x51 && WITHIN(reg,NV_PRAMIN_OFFSET,NV_PRAMIN_SIZE))
-+		return 1;
-+	#undef WITHIN
 +
-+	NV_ERROR(dev, "========== unknown reg 0x%08X ==========\n", reg);
-+
-+	return 0;
++	return 1;
 +}
 +
 +static bool valid_idx_port(struct drm_device *dev, uint16_t port)
@@ -992,7 +946,7 @@ index 0000000..f6628db
 +	}
 +}
 +
-+static bool init_io_restrict_prog(struct drm_device *dev, struct nvbios *bios, uint16_t offset, init_exec_t *iexec)
++static bool init_io_restrict_prog(struct drm_device *dev, struct nvbios *bios, uint16_t offset, struct init_exec *iexec)
 +{
 +	/* INIT_IO_RESTRICT_PROG   opcode: 0x32 ('2')
 +	 *
@@ -1044,7 +998,7 @@ index 0000000..f6628db
 +	return true;
 +}
 +
-+static bool init_repeat(struct drm_device *dev, struct nvbios *bios, uint16_t offset, init_exec_t *iexec)
++static bool init_repeat(struct drm_device *dev, struct nvbios *bios, uint16_t offset, struct init_exec *iexec)
 +{
 +	/* INIT_REPEAT   opcode: 0x33 ('3')
 +	 *
@@ -1078,7 +1032,7 @@ index 0000000..f6628db
 +	return true;
 +}
 +
-+static bool init_io_restrict_pll(struct drm_device *dev, struct nvbios *bios, uint16_t offset, init_exec_t *iexec)
++static bool init_io_restrict_pll(struct drm_device *dev, struct nvbios *bios, uint16_t offset, struct init_exec *iexec)
 +{
 +	/* INIT_IO_RESTRICT_PLL   opcode: 0x34 ('4')
 +	 *
@@ -1142,7 +1096,7 @@ index 0000000..f6628db
 +	return true;
 +}
 +
-+static bool init_end_repeat(struct drm_device *dev, struct nvbios *bios, uint16_t offset, init_exec_t *iexec)
++static bool init_end_repeat(struct drm_device *dev, struct nvbios *bios, uint16_t offset, struct init_exec *iexec)
 +{
 +	/* INIT_END_REPEAT   opcode: 0x36 ('6')
 +	 *
@@ -1162,7 +1116,7 @@ index 0000000..f6628db
 +	return true;
 +}
 +
-+static bool init_copy(struct drm_device *dev, struct nvbios *bios, uint16_t offset, init_exec_t *iexec)
[...4542 lines suppressed...]
++	0x00122503, 0x00162600, 0x00122607, 0x00112680, 0x00112700, 0x00112702,
++	0x00122780, 0x0011278b, 0x00112794, 0x0011279c, 0x0040d1e2, 0x00200298,
++	0x00600006, 0x00200044, 0x00102880, 0x001128c6, 0x001528c9, 0x001928d0,
++	0x00122900, 0x00122903, 0x00162a00, 0x00122a07, 0x00112a80, 0x00112b00,
++	0x00112b02, 0x00122b80, 0x00112b8b, 0x00112b94, 0x00112b9c, 0x0040eee3,
++	0x002002ff, 0x00600006, 0x00200044, 0x00102c80, 0x0040df0f, 0x0040df4b,
++	0x00217240, 0x00600007, 0x0020043f, 0x008800ff, 0x0070008f, 0x0040df8c,
++	0x005000cb, 0x00000000, 0x00112cc6, 0x00152cc9, 0x00192cd0, 0x00122d00,
++	0x00122d03, 0x00162e00, 0x00122e07, 0x00112e80, 0x00112f00, 0x00112f02,
++	0x00122f80, 0x00112f8b, 0x00112f94, 0x00112f9c, 0x00000000, 0x0040f50f,
++	0x005000cb, 0x00217240, 0x00600007, 0x0020043f, 0x008800ff, 0x005000cb,
++	0x0040f887, 0x0060000a, 0x00000000, 0x00410700, 0x007000a0, 0x00700080,
++	0x00200380, 0x00600007, 0x00200004, 0x00c000ff, 0x008000ff, 0x005000cb,
++	0x00700000, 0x00200000, 0x00600006, 0x00111bfe, 0x0041294d, 0x00700000,
++	0x00200000, 0x00600006, 0x00111bfe, 0x00700080, 0x0070001d, 0x0040114d,
++	0x00700081, 0x00600004, 0x0050004a, 0x00411388, 0x0060000b, 0x00200000,
++	0x00600006, 0x00700000, 0x0041290b, 0x00111bfd, 0x0040424d, 0x00202dd2,
++	0x008000fd, 0x005000cb, 0x00c00002, 0x00200380, 0x00600007, 0x00200160,
++	0x00800002, 0x005000cb, 0x00c01802, 0x00202c72, 0x00800002, 0x005000cb,
++	0x00404e4d, 0x0060000b, 0x0041274d, 0x00700001, 0x00700003, 0x00412d06,
++	0x00412e05, 0x0060000d, 0x00700005, 0x0070000d, 0x00700006, 0x0070000b,
++	0x0070000e, 0x0070001c, 0x0060000c, ~0
++};
++
++static unsigned nv94_ctxvals[] = {
++	0x0043, 0x00000000,
++	0x0001, 0x00000030,
++	0x0008, 0x00000000,
++	0x0001, 0x00000002,
++	0x0028, 0x00000000,
++	0x0001, 0x00000003,
++	0x0001, 0x00001000,
++	0x000f, 0x00000000,
++	0x0001, 0x0000fe0c,
++	0x0004, 0x00000000,
++	0x0001, 0x00001000,
++	0x000a, 0x00000000,
++	0x0001, 0x00000187,
++	0x0004, 0x00000000,
++	0x0001, 0x00001018,
++	0x0001, 0x000000ff,
++	0x000e, 0x00000000,
++	0x0001, 0x00000004,
++	0x0001, 0x044d00df,
++	0x0001, 0x00000000,
++	0x0001, 0x00000600,
++	0x0005, 0x00000000,
++	0x0001, 0x01000000,
++	0x0001, 0x000000ff,
++	0x0001, 0x00000000,
++	0x0001, 0x00000400,
++	0x0005, 0x00000000,
++	0x0001, 0x00000001,
++	0x0001, 0x00000080,
++	0x0001, 0x00000004,
++	0x0006, 0x00000000,
++	0x0001, 0x00000002,
++	0x0001, 0x00000001,
++	0x0003, 0x00000000,
++	0x0001, 0x00000001,
++	0x0001, 0x00000100,
++	0x0005, 0x00000000,
++	0x0001, 0x00000002,
++	0x0002, 0x00000001,
 +	0x0003, 0x00000000,
 +	0x0001, 0x00000001,
 +	0x0001, 0x003fffff,
@@ -51203,10 +52720,10 @@ index 0000000..ca23454
 +#endif
 diff --git a/drivers/gpu/drm/nouveau/nv50_instmem.c b/drivers/gpu/drm/nouveau/nv50_instmem.c
 new file mode 100644
-index 0000000..a89926e
+index 0000000..9b5f802
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nv50_instmem.c
-@@ -0,0 +1,451 @@
+@@ -0,0 +1,445 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
 + *
@@ -51636,9 +53153,6 @@ index 0000000..a89926e
 +	struct drm_nouveau_private *dev_priv = dev->dev_private;
 +	struct nv50_instmem_priv *priv = dev_priv->engine.instmem.priv;
 +
-+	BUG_ON(dev_priv->ramin_map != NULL);
-+	dev_priv->ramin_map = dev_priv->ramin;
-+
 +	priv->last_access_wr = write;
 +}
 +
@@ -51648,9 +53162,6 @@ index 0000000..a89926e
 +	struct drm_nouveau_private *dev_priv = dev->dev_private;
 +	struct nv50_instmem_priv *priv = dev_priv->engine.instmem.priv;
 +
-+	BUG_ON(dev_priv->ramin_map == NULL);
-+	dev_priv->ramin_map = NULL;
-+
 +	if (priv->last_access_wr) {
 +		nv_wr32(0x070000, 0x00000001);
 +		if (!nv_wait(0x070000, 0x00000001, 0x00000000))
@@ -51706,10 +53217,10 @@ index 0000000..6572f12
 +}
 diff --git a/drivers/gpu/drm/nouveau/nv50_sor.c b/drivers/gpu/drm/nouveau/nv50_sor.c
 new file mode 100644
-index 0000000..8977aa3
+index 0000000..5429266
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nv50_sor.c
-@@ -0,0 +1,310 @@
+@@ -0,0 +1,304 @@
 +/*
 + * Copyright (C) 2008 Maarten Maathuis.
 + * All Rights Reserved.
@@ -51745,7 +53256,6 @@ index 0000000..8977aa3
 +#include "nouveau_connector.h"
 +#include "nouveau_crtc.h"
 +#include "nv50_display.h"
-+#include "nv50_display_commands.h"
 +
 +extern int nouveau_duallink;
 +
@@ -51755,7 +53265,6 @@ index 0000000..8977aa3
 +	struct drm_device *dev = encoder->base.dev;
 +	struct drm_nouveau_private *dev_priv = dev->dev_private;
 +	struct nouveau_channel *evo = &dev_priv->evo.chan;
-+	uint32_t offset = encoder->or * 0x40;
 +	int ret;
 +
 +	NV_DEBUG(dev, "Disconnecting SOR %d\n", encoder->or);
@@ -51765,8 +53274,8 @@ index 0000000..8977aa3
 +		NV_ERROR(dev, "no space while disconnecting SOR\n");
 +		return;
 +	}
-+	BEGIN_RING(evo, 0, NV50_SOR0_MODE_CTRL + offset, 1);
-+	OUT_RING  (evo, NV50_SOR_MODE_CTRL_OFF);
++	BEGIN_RING(evo, 0, NV50_EVO_SOR(encoder->or, MODE_CTRL), 1);
++	OUT_RING  (evo, 0);
 +}
 +
 +static int
@@ -51895,8 +53404,7 @@ index 0000000..8977aa3
 +	struct nouveau_encoder *encoder = to_nouveau_encoder(drm_encoder);
 +	struct drm_device *dev = drm_encoder->dev;
 +	struct nouveau_crtc *crtc = to_nouveau_crtc(drm_encoder->crtc);
-+	uint32_t offset = encoder->or * 0x40;
-+	uint32_t mode_ctl = NV50_SOR_MODE_CTRL_OFF;
++	uint32_t mode_ctl = 0;
 +	int ret;
 +
 +	NV_DEBUG(dev, "or %d\n", encoder->or);
@@ -51906,31 +53414,29 @@ index 0000000..8977aa3
 +	nv50_sor_dpms(drm_encoder, DRM_MODE_DPMS_ON);
 +	dev_priv->in_modeset = ret;
 +
-+	if (encoder->base.encoder_type == DRM_MODE_ENCODER_LVDS) {
-+		mode_ctl |= NV50_SOR_MODE_CTRL_LVDS;
-+	} else {
-+		mode_ctl |= NV50_SOR_MODE_CTRL_TMDS;
++	if (encoder->base.encoder_type != DRM_MODE_ENCODER_LVDS) {
++		mode_ctl |= NV50_EVO_SOR_MODE_CTRL_TMDS;
 +		if (adjusted_mode->clock > 165000)
-+			mode_ctl |= NV50_SOR_MODE_CTRL_TMDS_DUAL_LINK;
++			mode_ctl |= NV50_EVO_SOR_MODE_CTRL_TMDS_DUAL_LINK;
 +	}
 +
 +	if (crtc->index == 1)
-+		mode_ctl |= NV50_SOR_MODE_CTRL_CRTC1;
++		mode_ctl |= NV50_EVO_SOR_MODE_CTRL_CRTC1;
 +	else
-+		mode_ctl |= NV50_SOR_MODE_CTRL_CRTC0;
++		mode_ctl |= NV50_EVO_SOR_MODE_CTRL_CRTC0;
 +
 +	if (adjusted_mode->flags & DRM_MODE_FLAG_NHSYNC)
-+		mode_ctl |= NV50_SOR_MODE_CTRL_NHSYNC;
++		mode_ctl |= NV50_EVO_SOR_MODE_CTRL_NHSYNC;
 +
 +	if (adjusted_mode->flags & DRM_MODE_FLAG_NVSYNC)
-+		mode_ctl |= NV50_SOR_MODE_CTRL_NVSYNC;
++		mode_ctl |= NV50_EVO_SOR_MODE_CTRL_NVSYNC;
 +
 +	ret = RING_SPACE(evo, 2);
 +	if (ret) {
 +		NV_ERROR(dev, "no space while connecting SOR\n");
 +		return;
 +	}
-+	BEGIN_RING(evo, 0, NV50_SOR0_MODE_CTRL + offset, 1);
++	BEGIN_RING(evo, 0, NV50_EVO_SOR(encoder->or, MODE_CTRL), 1);
 +	OUT_RING  (evo, mode_ctl);
 +}
 +
@@ -52004,8 +53510,7 @@ index 0000000..8977aa3
 +	drm_encoder_init(dev, &encoder->base, &nv50_sor_encoder_funcs, type);
 +	drm_encoder_helper_add(&encoder->base, &nv50_sor_helper_funcs);
 +
-+	/* I've never seen possible crtc's restricted. */
-+	encoder->base.possible_crtcs = 3;
++	encoder->base.possible_crtcs = entry->heads;
 +	encoder->base.possible_clones = 0;
 +
 +	/* Some default state, unknown what it precisely means. */


View full diff with command:
/usr/bin/cvs -f diff  -kk -u -p -N -r 1.1294.2.40 -r 1.1294.2.41 kernel.spec
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1294.2.40
retrieving revision 1.1294.2.41
diff -u -p -r1.1294.2.40 -r1.1294.2.41
--- kernel.spec	10 Jul 2009 19:04:29 -0000	1.1294.2.40
+++ kernel.spec	15 Jul 2009 20:58:06 -0000	1.1294.2.41
@@ -57,9 +57,9 @@ Summary: The Linux kernel
 # The next upstream release sublevel (base_sublevel+1)
 %define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
 # The rc snapshot level
-%define rcrev 2
+%define rcrev 3
 # The git snapshot level
-%define gitrev 4
+%define gitrev 0
 # Set rpm version accordingly
 %define rpmversion 2.6.%{upstream_sublevel}
 %endif
@@ -646,6 +646,8 @@ Patch800: linux-2.6-crash-driver.patch
 
 Patch900: linux-2.6-pci-cacheline-sizing.patch
 
+Patch1000: linux-2.6-cpufreq-ppc-suspend-clusterfuck.patch
+
 Patch1515: linux-2.6.31-lirc.patch
 Patch1516: lirc_streamzap-buffer-rework.patch
 Patch1517: hdpvr-ir-enable.patch
@@ -674,8 +676,6 @@ Patch2900: linux-2.6-v4l-dvb-update.patc
 Patch2901: linux-2.6-v4l-dvb-experimental.patch
 Patch2903: linux-2.6-revert-dvb-net-kabi-change.patch
 
-Patch3000: linux-2.6-dmadebug-spinlock.patch
-
 # fs fixes
 
 # NFSv4
@@ -1134,8 +1134,6 @@ ApplyPatch linux-2.6.29-sparc-IOC_TYPECH
 #
 ApplyPatch linux-2.6-execshield.patch
 
-ApplyPatch linux-2.6-dmadebug-spinlock.patch
-
 #
 # bugfixes to drivers and filesystems
 #
@@ -1223,6 +1221,8 @@ ApplyPatch linux-2.6-crash-driver.patch
 # Determine cacheline sizes in a generic manner.
 ApplyPatch linux-2.6-pci-cacheline-sizing.patch
 
+ApplyPatch linux-2.6-cpufreq-ppc-suspend-clusterfuck.patch
+
 # http://www.lirc.org/
 ApplyPatch linux-2.6.31-lirc.patch
 # should be a short-lived patch, hopefully fixing bz#508952 w/o breaking anything else...
@@ -1875,6 +1875,33 @@ fi
 # and build.
 
 %changelog
+* Wed Jul 15 2009 Michael Young <m.a.young at durham.ac.uk>
+- update pvops
+
+* Tue Jul 14 2009 Kyle McMartin <kyle at redhat.com> 2.6.31-0.68-rc3
+- 2.6.31-rc3
+- config changes:
+ - RTL8192SU is not set, (staging)
+
+* Mon Jul 13 2009 Kyle McMartin <kyle at redhat.com> 2.6.31-0.67.rc2.git9
+- 2.6.31-rc2-git9
+- config changes:
+ - BLK_DEV_OSD=m
+
+* Mon Jul 13 2009 Ben Skeggs <bskeggs at redhat.com>
+- drm-nouveau.patch: update from upstream
+
+* Fri Jul 10 2009 Chuck Ebbert <cebbert at redhat.com>
+- 2.6.31-rc2-git6
+- Drop dmadebug-spinlock patch -- merged upstream.
+
+* Fri Jul 10 2009 Dave Jones <davej at redhat.com> 2.6.31-0.64.rc2.git5
+- Don't jump through hoops that ppc powerbooks have to on sensible systems
+  in cpufreq_suspend.
+
+* Fri Jul 10 2009 Dave Jones <davej at redhat.com>
+- 2.6.31-rc2-git5
+
 * Thu Jul 09 2009 Michael Young <m.a.young at durham.ac.uk>
 - disable CONFIG_KERNEL_LZMA as xen doesn't like it
 
@@ -2639,2651 +2666,6 @@ fi
 * Mon Mar 23 2009 Dave Jones <davej at redhat.com>
 - 2.6.29
 
-* Mon Mar 23 2009 Mauro Carvalho Chehab <mchehab at rehat.com>
-- Some fixes on drivers/media
-- Removed inexistent drivers/media items from config-generic
-- Cinergy T2 option were renamed. Use the current syntax
-
-* Mon Mar 23 2009 Matthew Garrett <mjg at redhat.com>
-- linux-2.6-sony-laptop-rfkill.patch
-   Update to support hotkeys and rfkill switch
-
-* Mon Mar 23 2009 Bill Nottingham <notting at redhat.com>
-- build ide-gd_mod in on PPC (#491380)
-
-* Mon Mar 23 2009 Mark McLoughlin <markmc at redhat.com>
-- Add /sys/bus/pci/devices/*/remove_id for KVM (#487103)
-
-* Mon Mar 23 2009 Chuck Ebbert <cebbert at redhat.com>
-- Linux 2.6.29-rc8-git6
-
-* Mon Mar 23 2009 Roland McGrath <roland at redhat.com>
-- utrace update, fixes /proc/pid/status format (#491508)
-
-* Mon Mar 23 2009 Ben Skeggs <bskeggs at redhat.com>
-- drm-nouveau.patch: fix GEM object leak, and display shutdown issue
-
-* Fri Mar 20 2009 Kyle McMartin <kyle at redhat.com>
-- Linux 2.6.29-rc8-git5
-
-* Thu Mar 19 2009 Mauro Carvalho Chehab <mchehab at redhat.com>
-- Removed v4l-build-fixes.patch
-
-* Thu Mar 19 2009 Mauro Carvalho Chehab <mchehab at redhat.com>
-- update v4l-dvb to reflect changes at linux-next
-
-* Thu Mar 19 2009 Matthew Garrett <mjg at redhat.com>
-- linux-2.6-acpi-video-didl-intel-outputs.patch
-   don't attempt to re-register the backlight device on resume
-- linux-2.6-sony-laptop-rfkill.patch
-   provide rfkill control on current vaios
-
-* Thu Mar 19 2009 Dave Jones <davej at redhat.com>
-- Switch x86-32 back to using 8k stacks.
-
-* Thu Mar 19 2009 Chuck Ebbert <cebbert at redhat.com>
-- Enable the sfc 10GbE network driver.
-
-* Thu Mar 19 2009 Kyle McMartin <kyle at redhat.com>
-- dma-api debug fixes for e1000 and e1000e from tip.
-- fix dma leak in tulip request_irq error path.
-
-* Thu Mar 19 2009 Kyle McMartin <kyle at redhat.com> 2.6.29-0.267.rc8.git4
-- build fixes for v4l tree.
-
-* Thu Mar 19 2009 Roland McGrath <roland at redhat.com> 2.6.29-0.266.rc8.git4
-- utrace update, add ftrace process-tracer widget, drop utrace-ptrace
-
-* Thu Mar 19 2009 Ben Skeggs <bskeggs at redhat.com>
-- drm-nouveau.patch: kms fixes and cleanups
-
-* Thu Mar 19 2009 Chuck Ebbert <cebbert at redhat.com>
-- 2.6.29-rc8-git4
-- Dropped patches, merged upstream:
-    linux-2.6-ext4-extent-header-check-fix.patch
-    linux-2.6-ext4-print-warning-once.patch
-    linux-2.6-net-velocity-dma.patch
-
-* Wed Mar 18 2009 Mauro Carvalho Chehab <mchehab at redhat.com>
-- merge hdpvr patch into v4l-dvb updates
-- update v4l-dvb to reflect changes at linux-next
-
-* Wed Mar 18 2009 Jarod Wilson <jarod at redhat.com>
-- Update hdpvr patch to version targeted for v4l-dvb merge
-- Re-sort patches to add hdpvr after v4l-dvb updates
-
-* Wed Mar 18 2009 Dave Airlie <airlied at redhat.com>
-- drm-next.patch: fix rs600 GART setup
-- drm-modesetting-radeon.patch: allocator fixups
-
-* Wed Mar 18 2009 Ben Skeggs <bskeggs at redhat.com>
-- enable CONFIG_MMIOTRACE on x86/x86_64
-
-* Tue Mar 17 2009 Michael Young <m.a.young at durham.ac.uk>
-- update pvops patch
-
-* Tue Mar 17 2009 Kyle McMartin <kyle at redhat.com>
-- increase MAX_LOCKDEP_ENTRIES to 10240.
-
-* Mon Mar 16 2009 Josef Bacik <josef at toxicpanda.com> 2.6.29-0.258.rc8.git2
-- update btrfs code so it doesn't pop the stack on x86
-
-* Mon Mar 16 2009 Kyle McMartin <kyle at redhat.com> 2.6.29-0.255.rc8.git2
-- 2.6.29-rc8-git2
-
-* Sun Mar 15 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29-0.254.rc8.git1
-- 2.6.29-rc8-git1
-- Entire v4l-dvb-fixes patch was merged upstream.
-
-* Fri Mar 13 2009 Mauro Carvalho Chehab <mchehab at redhat.com
-- v4l-dvb patches: better conflict solving with hdpvr, more fixes and updates
-
-* Fri Mar 13 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.29-0.252.rc8
-- Quiet down an ext4 warning message.
-
-* Fri Mar 13 2009 Dave Jones <davej at redhat.com> 2.6.29-0.250.rc8
-- Fix DMA leak in Velocity TX path
-
-* Fri Mar 13 2009 Mauro Carvalho Chehab <mchehab at redhat.com
[...2342 lines suppressed...]
-- Fix gianfar build.
-
-* Thu May 22 2008 Dave Jones <davej at redhat.com>
-- 2.6.26-rc3-git4
-
-* Wed May 21 2008 John W. Linville <linville at redhat.com>
-- libertas: Fix ethtool statistics
-- mac80211: fix NULL pointer dereference in ieee80211_compatible_rates
-- mac80211: don't claim iwspy support
-- rtl8187: resource leak in error case
-- hostap_cs: add ID for Conceptronic CON11CPro
-- orinoco_cs: add ID for SpeedStream wireless adapters
-
-* Wed May 21 2008 Dave Jones <davej at redhat.com>
-- 2.6.26-rc3-git3
-
-* Tue May 20 2008 Dave Jones <davej at redhat.com>
-- 2.6.26-rc3-git1
-
-* Mon May 19 2008 Dave Jones <davej at redhat.com>
-- Disable PATA_ISAPNP (it's busted).
-
-* Mon May 19 2008 John W. Linville <linville at redhat.com>
-- mac80211 : Association with 11n hidden ssid ap.
-- libertas: fix command timeout after firmware failure
-- mac80211: Add RTNL version of ieee80211_iterate_active_interfaces
-- wireless: Create 'device' symlink in sysfs
-- hostap: fix "registers" registration in procfs
-- wireless, airo: waitbusy() won't delay
-- iwlwifi : Set monitor mode for 4965
-- iwlwifi : Set monitor mode for 3945
-- make sta_rx_agg_session_timer_expired() static
-- remove ieee80211_tx_frame()
-- remove ieee80211_wx_{get,set}_auth()
-- wireless: fix "iwlwifi: unify init driver flow"
-- iwl3945: do not delay hardware scan if it is a direct scan
-- ath5k: Fix loop variable initializations
-- zd1211rw: initial IBSS support
-- mac80211: use hardware flags for signal/noise units
-- mac80211: make rx radiotap header more flexible
-- iwlwifi: HW dependent run time calibration
-- iwlwifi: HW crypto acceleration fixes
-- iwlwifi: remove uneeded callback
-- iwlwifi: CT-Kill configuration fix
-- iwlwifi: HT IE in probe request clean up
-- iwlwifi: clean up register names and defines
-- iwlwifi: move Flow Handlers define to iwl-fh.h
-- iwlwifi: move verify_ucode functions to iwl-core
-- iwlwifi: move hw_rx_handler_setup to iwl-4965.c
-- iwlwifi-5000: update the CT-Kill value for 5000 series
-- iwlwifi-5000: add run time calibrations for 5000
-- iwlwifi-5000: update the byte count in SCD
-- iwlwifi: move iwl4965_init_alive_start to iwl-4965.c
-- wireless: Add missing locking to cfg80211_dev_rename
-- mac80211: correct skb allocation
-- iwlwifi: move per driverdebug_level to per device
-- iwlwifi: move debug_level to sysfs/bus/pci/devices
-- iwlwifi: update levels of debug prints
-- iwlwifi: adding parameter of fw_restart
-- iwlwifi: remove support for Narrow Channel (10Mhz)
-- iwlwifi: HT antenna/chains overhaul
-- iwlwifi: TLC modifications
-- iwlwifi: rate scale module cleanups
-- iwlwifi: rate scale restructure toggle_antenna functions
-- iwlwifi: rs fix wrong parenthesizing in rs_get_lower_rate function
-- iwlwifi: rate sacaling fixes
-- iwlwifi: more RS improvements
-- mac80211: remove unnecessary byteshifts in frame control testing
-- wireless: use get/put_unaligned_* helpers
-- mac80211: tkip.c use kernel-provided infrastructure
-- b43: replace limit_value macro with clamp_val
-- b43legacy: replace limit_value macro with clamp_val
-- b43: use the bitrev helpers rather than rolling a private one
-- libertas: debug output tweaks for lbs_thread
-- libertas: make some functions void
-- libertas: allow removal of card at any time
-- libertas: remove lbs_get_data_rate()
-- b43: nphy.c remove duplicated include
-- mac80211: Replace ieee80211_tx_control->key_idx with ieee80211_key_conf
-- mac80211: Add IEEE80211_KEY_FLAG_PAIRWISE
-- rt2x00: Support hardware RTS and CTS-to-self frames
-- rt2x00: Remove DRIVER_SUPPORT_MIXED_INTERFACES
-- rt2x00: Use rt2x00 queue numbering
-- rt2x00: Add helper macros
-- rt2x00: Fix kernel-doc
-- rt2x00: Release rt2x00 2.1.5
-- rt2x00: Clarify supported chipsets in Kconfig
-- mac80211: Set IEEE80211_TXPD_REQ_TX_STATUS for all TX frames
-- mac80211: a few code cleanups
-- mac80211: clean up get_tx_stats callback
-- mac80211: remove queue info from ieee80211_tx_status
-- mac80211: QoS related cleanups
-- mac80211: fix wme code
-- mac80211: require four hardware queues for QoS/HT
-- mac80211: proper STA info locking
-- mac80211: fix queue constant confusion
-- wireless: fix warning introduced by "mac80211: QoS related cleanups"
-- ssb: Allow reading of 440-byte SPROM that is not rev 4
-- b43: Rewrite LO calibration algorithm
-- b43: Remove some dead code
-- b43: Don't disable IRQs in mac_suspend
-- iwlwifi: Add power level support
-- airo: use netstats in net_device structure
-- arlan: use netstats in net_device structure
-- atmel: use netstats in net_device structure
-- iwlwifi: arranging aggregation actions
-- iwlwifi: expanding HW parameters control
-- iwlwifi: support 64 bit DMA masks
-- iwlwifi: handle shared memory
-- iwlwifi: unify init driver flow
-- iwlwifi: iwl-sta redundant includes clean up
-- iwlwifi-5000: add iwl 5000 shared memory handlers
-- iwlwifi: map A-MPDU HW queue to mac80211 A-MPDU SW queue
-- iwlwifi-5000: rename iwl5000_init_nic to iwl5000_init_config
-- iwlwifi: create disable SCD Tx FIFOs handler
-- iwlwifi: move NIC init and Tx queues init to iwlcore
-- iwlwifi: handle shared memory Rx index access
-- iwlwifi: remove 4965 prefix from iwl4965_kw and iwl4965_tx_queue
-- iwlwifi: fix spinlock used before initialized
-- iwlwifi: move find station to iwl-sta.c
-- iwlwifi: cleanup set_pwr_src
-- iwlwifi: define ANA_PLL values in iwl-csr.h
-- iwlwifi: export int iwl4965_set_pwr_src
-- iwlwifi: changing EEPROM layout handling
-- iwlwifi: remove includes to net/ieee80211.h
-- iwlwifi: add apm init handler
-- iwlwifi: add iwl_hw_detect function to iwl core
-- iwlwifi: check eeprom version in pci probe time
-- iwlwifi: reorganize TX RX constatns
-- iwlwifi: 3945 remove unused SCD definitions
-- iwlwifi: remove 49 prefix from general CSR values
-- iwlwifi: remove unnecessary apmg settings
-- iwlwifi: wrapping nic configuration in iwl core handler
-- iwlwifi-5000: adding initial recognition for the 5000 family
-- iwlwifi-5000: add ops infrastructure for 5000
-- iwlwifi-5000: add apm_init handler for 5000 HW family
-- iwlwifi-5000: use iwl4965_set_pwr_src in 5000
-- iwlwifi-5000: EEPROM settings for 5000
-- iwlwifi-5000: adding iwl5000 HW parameters
-- iwlwifi-5000: adjust antennas names in 5000 HW family
-- iwlwifi-5000: Add HW REV of 5000 HW family
-- iwlwifi-5000: add eeprom check version handler
-- iwlwifi-5000: add nic config handler for 5000 HW
-- iwlwifi: rename iwl-4965-commands to iwl-commands.h
-- iwlwifi: rename iwl-4965.h to iwl-dev.h
-- iwlwifi: move RX code to iwl-rx.c
-- iwlwifi: don't override association channel with control channel
-- iwlwifi: remove 4965 from station_entry
-- iwlwifi: debugfs EEPROM dump
-- iwlwifi: remove 4965 from rx_packet
-- iwlwifi: generalize iwl4965_send_add_station function
-- iwlwifi-5000: add build_addsta_hcmd handler for 5000 HW
-- iwlwifi: move iwl4965_set_rxon_ht into iwlcore
-- iwlwifi: compile iwl-sta into iwlcore
-- iwlwifi: add device sysfs version entry
-- at76: use hardware flags for signal/noise units
-
-* Sun May 18 2008 Dave Jones <davej at redhat.com>
-- 2.6.26-rc3
-
-* Sat May 17 2008 Eric Paris <eparis at redhat.com>
-- SELinux: enable deffered context validation
-- SELinux: don't sleep while holding locks in above patch
-- SELinux: replace ioctl specific knowlege in the selinux code and follow generic permissions
-- SELinux: not all reading in /proc needs ptrace, so make those things just use 'read' perms
-
-* Sat May 17 2008 Dave Jones <davej at redhat.com>
-- Enable PAGEALLOC debugging for a while. (Some things might get slow).
-
-* Sat May 17 2008 Dave Jones <davej at redhat.com>
-- Disable CONFIG_SND_PCSP (#447039)
-
-* Fri May 16 2008 Dave Jones <davej at redhat.com>
-- Enable CONFIG_SND_SERIAL_U16550
-
-* Fri May 16 2008 Dave Jones <davej at redhat.com>
-- 2.6.26-rc2-git5
-
-* Thu May 15 2008 Eric Sandeen <esandeen at redhat.com>
-- ext3/4: fix uninitialized bs in ext3/4_xattr_set_handle()
-
-* Wed May 14 2008 Eric Paris <eparis at redhat.com>
-- fix may sleep in allocation for previous deffered context patch
-- replace selinux specific knowledge of ioctls with a generic ioctl implementation
-
-* Mon May 12 2008 Kyle McMartin <kmcmartin at redhat.com>
-- Linux 2.6.25.3
-
-* Fri May 09 2008 John W. Linville <linville at redhat.com> 2.6.25.2-7
-- Regroup wireless patches as prep for 2.6.26 and F10 cycles
-
-* Fri May 09 2008 Eric Paris <eparis at redhat.com>
-- support deffered context validation in selinux.  aka rpm can lay down illegal labels. (won't upstream until .27 opens)
-
-* Wed May 07 2008 Chuck Ebbert <cebbert at redhat.com> 2.6.25.2-5
-- Add the patches queued for 2.6.25.3
-
 ###
 # The following Emacs magic makes C-c C-e use UTC dates.
 # Local Variables:

linux-2.6-compile-fixes.patch:

Index: linux-2.6-compile-fixes.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-compile-fixes.patch,v
retrieving revision 1.193.6.1
retrieving revision 1.193.6.2
diff -u -p -r1.193.6.1 -r1.193.6.2
--- linux-2.6-compile-fixes.patch	10 Jul 2009 19:04:30 -0000	1.193.6.1
+++ linux-2.6-compile-fixes.patch	15 Jul 2009 20:58:06 -0000	1.193.6.2
@@ -4,14 +4,3 @@
 # Please add the errors from gcc before the diffs to save others having
 # to do a compile to figure out what your diff is fixing. Thanks.
 #
---- linux-2.6.30.noarch/drivers/net/bmac.c~	2009-07-09 21:51:36.000000000 -0400
-+++ linux-2.6.30.noarch/drivers/net/bmac.c	2009-07-09 21:51:47.000000000 -0400
-@@ -431,7 +431,7 @@ bmac_init_phy(struct net_device *dev)
- 			printk(KERN_DEBUG);
- 		printk(KERN_CONT " %.4x", bmac_mif_read(dev, addr));
- 	}
--	print(KERN_CONT "\n");
-+	printk(KERN_CONT "\n");
- 
- 	if (bp->is_bmac_plus) {
- 		unsigned int capable, ctrl;


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/sources,v
retrieving revision 1.976.2.21
retrieving revision 1.976.2.22
diff -u -p -r1.976.2.21 -r1.976.2.22
--- sources	10 Jul 2009 19:04:31 -0000	1.976.2.21
+++ sources	15 Jul 2009 20:58:07 -0000	1.976.2.22
@@ -1,3 +1,2 @@
 7a80058a6382e5108cdb5554d1609615  linux-2.6.30.tar.bz2
-a785e5e8d16d646c7a7c876359b3dab3  patch-2.6.31-rc2.bz2
-76b4082138a3d4ba88c37da6e3b91d13  patch-2.6.31-rc2-git4.bz2
+39a1c949531faa70e147d0aa5be6c6ec  patch-2.6.31-rc3.bz2


Index: upstream
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/upstream,v
retrieving revision 1.888.2.20
retrieving revision 1.888.2.21
diff -u -p -r1.888.2.20 -r1.888.2.21
--- upstream	10 Jul 2009 19:04:31 -0000	1.888.2.20
+++ upstream	15 Jul 2009 20:58:07 -0000	1.888.2.21
@@ -1,4 +1,3 @@
 linux-2.6.30.tar.bz2
-patch-2.6.31-rc2.bz2
-patch-2.6.31-rc2-git4.bz2
+patch-2.6.31-rc3.bz2
 

xen.pvops.patch:

Index: xen.pvops.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.patch,v
retrieving revision 1.1.2.27
retrieving revision 1.1.2.28
diff -u -p -r1.1.2.27 -r1.1.2.28
--- xen.pvops.patch	9 Jul 2009 22:53:03 -0000	1.1.2.27
+++ xen.pvops.patch	15 Jul 2009 20:58:07 -0000	1.1.2.28
@@ -2016,8 +2016,21 @@ index 6b8ca3a..d47c54f 100644
  	mp_lapic_addr = address;
  
  	set_fixmap_nocache(FIX_APIC_BASE, address);
+diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
+index ca93638..9eff23c 100644
+--- a/arch/x86/kernel/acpi/sleep.c
++++ b/arch/x86/kernel/acpi/sleep.c
+@@ -12,6 +12,8 @@
+ #include <asm/segment.h>
+ #include <asm/desc.h>
+ 
++#include <xen/acpi.h>
++
+ #include "realmode/wakeup.h"
+ #include "sleep.h"
+ 
 diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
-index 8fd1efb..e6e7500 100644
+index 90b5e6e..7011798 100644
 --- a/arch/x86/kernel/apic/io_apic.c
 +++ b/arch/x86/kernel/apic/io_apic.c
 @@ -63,8 +63,10 @@
@@ -2076,7 +2089,7 @@ index 8fd1efb..e6e7500 100644
  
  	if (sis_apic_bug)
  		writel(reg, &io_apic->index);
-@@ -3852,6 +3873,11 @@ void __init probe_nr_irqs_gsi(void)
+@@ -3851,6 +3872,11 @@ void __init probe_nr_irqs_gsi(void)
  	printk(KERN_DEBUG "nr_irqs_gsi: %d\n", nr_irqs_gsi);
  }
  
@@ -2088,7 +2101,7 @@ index 8fd1efb..e6e7500 100644
  #ifdef CONFIG_SPARSE_IRQ
  int __init arch_probe_nr_irqs(void)
  {
-@@ -4145,6 +4171,11 @@ void __init ioapic_init_mappings(void)
+@@ -4144,6 +4170,11 @@ void __init ioapic_init_mappings(void)
  	struct resource *ioapic_res;
  	int i;
  
@@ -4286,11 +4299,92 @@ index 4b45435..48804b0 100644
  
  static inline void blk_free_request(struct request_queue *q, struct request *rq)
  {
+diff --git a/drivers/acpi/acpica/hwsleep.c b/drivers/acpi/acpica/hwsleep.c
+index db307a3..c6d845c 100644
+--- a/drivers/acpi/acpica/hwsleep.c
++++ b/drivers/acpi/acpica/hwsleep.c
+@@ -46,6 +46,9 @@
+ #include "accommon.h"
+ #include "actables.h"
+ 
++#include <xen/acpi.h>
++#include <asm/xen/hypervisor.h>
++
+ #define _COMPONENT          ACPI_HARDWARE
+ ACPI_MODULE_NAME("hwsleep")
+ 
+@@ -343,8 +346,22 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
+ 	ACPI_FLUSH_CPU_CACHE();
+ 
+ 	/* Write #2: Write both SLP_TYP + SLP_EN */
++	if (xen_pv_acpi()) {
++		int err;
++
++		err = acpi_notify_hypervisor_state(sleep_state,
++						   pm1a_control, pm1b_control);
++		if (err) {
++			ACPI_DEBUG_PRINT((ACPI_DB_INIT,
++					  "Hypervisor failure [%d]\n", err));
++			return_ACPI_STATUS(AE_ERROR);
++		}
+ 
++		return_ACPI_STATUS(AE_OK);
++	}
++	
+ 	status = acpi_hw_write_pm1_control(pm1a_control, pm1b_control);
++
+ 	if (ACPI_FAILURE(status)) {
+ 		return_ACPI_STATUS(status);
+ 	}
+diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
+index 01574a0..c57e7b2 100644
+--- a/drivers/acpi/sleep.c
++++ b/drivers/acpi/sleep.c
+@@ -19,6 +19,8 @@
+ 
+ #include <asm/io.h>
+ 
++#include <xen/acpi.h>
++
+ #include <acpi/acpi_bus.h>
+ #include <acpi/acpi_drivers.h>
+ 
+@@ -211,6 +213,21 @@ static int acpi_suspend_begin(suspend_state_t pm_state)
+ 	return error;
+ }
+ 
++static void do_suspend(void)
++{
++	if (!xen_pv_acpi()) {
++		do_suspend_lowlevel();
++		return;
++	}
++
++	/*
++	 * Xen will save and restore CPU context, so
++	 * we can skip that and just go straight to
++	 * the suspend.
++	 */
++	acpi_enter_sleep_state(ACPI_STATE_S3);
++}
++
+ /**
+  *	acpi_suspend_enter - Actually enter a sleep state.
+  *	@pm_state: ignored
+@@ -244,7 +261,7 @@ static int acpi_suspend_enter(suspend_state_t pm_state)
+ 		break;
+ 
+ 	case ACPI_STATE_S3:
+-		do_suspend_lowlevel();
++		do_suspend();
+ 		break;
+ 	}
+ 
 diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig
-index bb72ada..bea8ae7 100644
+index 1d886e0..f4a2b10 100644
 --- a/drivers/block/Kconfig
 +++ b/drivers/block/Kconfig
-@@ -446,6 +446,7 @@ config XEN_BLKDEV_FRONTEND
+@@ -462,6 +462,7 @@ config XEN_BLKDEV_FRONTEND
  	tristate "Xen virtual block device support"
  	depends on XEN
  	default y
@@ -4904,7 +4998,7 @@ index 0000000..b1a7d93
 +}
 +
 diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
-index cab100a..aa72eb3 100644
+index cab100a..3b1c421 100644
 --- a/drivers/xen/Kconfig
 +++ b/drivers/xen/Kconfig
 @@ -28,6 +28,29 @@ config XEN_DEV_EVTCHN
@@ -4937,7 +5031,7 @@ index cab100a..aa72eb3 100644
  config XENFS
  	tristate "Xen filesystem"
  	depends on XEN
-@@ -60,4 +83,7 @@ config XEN_SYS_HYPERVISOR
+@@ -60,4 +83,11 @@ config XEN_SYS_HYPERVISOR
           Create entries under /sys/hypervisor describing the Xen
  	 hypervisor environment.  When running native or in another
  	 virtual environment, /sys/hypervisor will still be present,
@@ -4947,11 +5041,16 @@ index cab100a..aa72eb3 100644
 +
 +config XEN_XENBUS_FRONTEND
 +       tristate
++
++config XEN_S3
++       def_bool y
++       depends on XEN_DOM0 && ACPI
+\ No newline at end of file
 diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
-index ec2a39b..5a5c307 100644
+index ec2a39b..386c775 100644
 --- a/drivers/xen/Makefile
 +++ b/drivers/xen/Makefile
-@@ -1,9 +1,11 @@
+@@ -1,9 +1,12 @@
 -obj-y	+= grant-table.o features.o events.o manage.o
 +obj-y	+= grant-table.o features.o events.o manage.o biomerge.o
  obj-y	+= xenbus/
@@ -4961,6 +5060,8 @@ index ec2a39b..5a5c307 100644
 -obj-$(CONFIG_XEN_BALLOON)	+= balloon.o
 -obj-$(CONFIG_XEN_DEV_EVTCHN)	+= evtchn.o
 -obj-$(CONFIG_XENFS)		+= xenfs/
+-obj-$(CONFIG_XEN_SYS_HYPERVISOR)	+= sys-hypervisor.o
+\ No newline at end of file
 +obj-$(CONFIG_HOTPLUG_CPU)		+= cpu_hotplug.o
 +obj-$(CONFIG_XEN_XENCOMM)		+= xencomm.o
 +obj-$(CONFIG_XEN_BALLOON)		+= balloon.o
@@ -4968,8 +5069,38 @@ index ec2a39b..5a5c307 100644
 +obj-$(CONFIG_XEN_BLKDEV_BACKEND)	+= blkback/
 +obj-$(CONFIG_XEN_NETDEV_BACKEND)	+= netback/
 +obj-$(CONFIG_XENFS)			+= xenfs/
- obj-$(CONFIG_XEN_SYS_HYPERVISOR)	+= sys-hypervisor.o
++obj-$(CONFIG_XEN_SYS_HYPERVISOR)	+= sys-hypervisor.o
++obj-$(CONFIG_XEN_S3)			+= acpi.o
 \ No newline at end of file
+diff --git a/drivers/xen/acpi.c b/drivers/xen/acpi.c
+new file mode 100644
+index 0000000..e6d3d0e
+--- /dev/null
++++ b/drivers/xen/acpi.c
+@@ -0,0 +1,23 @@
++#include <xen/acpi.h>
++
++#include <xen/interface/platform.h>
++#include <asm/xen/hypercall.h>
++#include <asm/xen/hypervisor.h>
++
++int acpi_notify_hypervisor_state(u8 sleep_state,
++				 u32 pm1a_cnt, u32 pm1b_cnt)
++{
++	struct xen_platform_op op = {
++		.cmd = XENPF_enter_acpi_sleep,
++		.interface_version = XENPF_INTERFACE_VERSION,
++		.u = {
++			.enter_acpi_sleep = {
++				.pm1a_cnt_val = (u16)pm1a_cnt,
++				.pm1b_cnt_val = (u16)pm1b_cnt,
++				.sleep_state = sleep_state,
++			},
++		},
++	};
++
++	return HYPERVISOR_dom0_op(&op);
++}
 diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
 index f5bbd9e..bfe1fa3 100644
 --- a/drivers/xen/balloon.c
@@ -11020,10 +11151,10 @@ index 0000000..70029e5
 +subsys_initcall(xenbus_probe_backend_init);
 diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
 new file mode 100644
-index 0000000..ed7d950
+index 0000000..689761d
 --- /dev/null
 +++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
-@@ -0,0 +1,278 @@
+@@ -0,0 +1,292 @@
 +#define DPRINTK(fmt, args...)				\
 +	pr_debug("xenbus_probe (%s:%d) " fmt ".\n",	\
 +		 __func__, __LINE__, ##args)
@@ -11147,7 +11278,7 @@ index 0000000..ed7d950
 +	return xenbus_read_otherend_details(xendev, "backend-id", "backend");
 +}
 +
-+static int is_disconnected_device(struct device *dev, void *data)
++static int is_device_connecting(struct device *dev, void *data)
 +{
 +	struct xenbus_device *xendev = to_xenbus_device(dev);
 +	struct device_driver *drv = data;
@@ -11165,19 +11296,17 @@ index 0000000..ed7d950
 +		return 0;
 +
 +	xendrv = to_xenbus_driver(dev->driver);
-+	return (xendev->state != XenbusStateConnected ||
-+		(xendrv->is_ready && !xendrv->is_ready(xendev)));
++	return (xendev->state < XenbusStateConnected ||
++		(xendev->state == XenbusStateConnected &&
++		 xendrv->is_ready && !xendrv->is_ready(xendev)));
 +}
 +
-+
-+static int exists_disconnected_device(struct device_driver *drv)
++static int exists_connecting_device(struct device_driver *drv)
 +{
 +	return bus_for_each_dev(&xenbus_frontend.bus, NULL, drv,
-+				is_disconnected_device);
++				is_device_connecting);
 +}
 +
-+
-+
 +static int print_device_status(struct device *dev, void *data)
 +{
 +	struct xenbus_device *xendev = to_xenbus_device(dev);
@@ -11191,19 +11320,23 @@ index 0000000..ed7d950
 +		/* Information only: is this too noisy? */
 +		printk(KERN_INFO "XENBUS: Device with no driver: %s\n",
 +		       xendev->nodename);
-+	} else if (xendev->state != XenbusStateConnected) {
++	} else if (xendev->state < XenbusStateConnected) {
++		enum xenbus_state rstate = XenbusStateUnknown;
++		if (xendev->otherend)
++			rstate = xenbus_read_driver_state(xendev->otherend);
 +		printk(KERN_WARNING "XENBUS: Timeout connecting "
-+		       "to device: %s (state %d)\n",
-+		       xendev->nodename, xendev->state);
++		       "to device: %s (local state %d, remote state %d)\n",
++		       xendev->nodename, xendev->state, rstate);
 +	}
 +
 +	return 0;
 +}
++
 +/* We only wait for device setup after most initcalls have run. */
 +static int ready_to_wait_for_devices;
 +
 +/*
-+ * On a 10 second timeout, wait for all devices currently configured.  We need
++ * On a 5-minute timeout, wait for all devices currently configured.  We need
 + * to do this to guarantee that the filesystems and / or network devices
 + * needed for boot are available, before we can allow the boot to proceed.
 + *
@@ -11218,18 +11351,30 @@ index 0000000..ed7d950
 + */
 +static void wait_for_devices(struct xenbus_driver *xendrv)
 +{
-+	unsigned long timeout = jiffies + 10*HZ;
++	unsigned long start = jiffies;
 +	struct device_driver *drv = xendrv ? &xendrv->driver : NULL;
++	unsigned int seconds_waited = 0;
 +
 +	if (!ready_to_wait_for_devices || !xen_domain())
 +		return;
 +
-+	while (exists_disconnected_device(drv)) {
-+		if (time_after(jiffies, timeout))
-+			break;
++	while (exists_connecting_device(drv)) {
++		if (time_after(jiffies, start + (seconds_waited+5)*HZ)) {
++			if (!seconds_waited)
++				printk(KERN_WARNING "XENBUS: Waiting for "
++				       "devices to initialise: ");
++			seconds_waited += 5;
++			printk("%us...", 300 - seconds_waited);
++			if (seconds_waited == 300)
++				break;
++		}
++
 +		schedule_timeout_interruptible(HZ/10);
 +	}
 +
++	if (seconds_waited)
++		printk("\n");
++
 +	bus_for_each_dev(&xenbus_frontend.bus, NULL, drv,
 +			 print_device_status);
 +}
@@ -12012,6 +12157,35 @@ index 4e65c16..84ad8f0 100644
 @@ -1 +1,2 @@
  header-y += evtchn.h
 +header-y += privcmd.h
+diff --git a/include/xen/acpi.h b/include/xen/acpi.h
+new file mode 100644
+index 0000000..fea4cfb
+--- /dev/null
++++ b/include/xen/acpi.h
+@@ -0,0 +1,23 @@
++#ifndef _XEN_ACPI_H
++#define _XEN_ACPI_H
++
++#include <linux/types.h>
++
++#ifdef CONFIG_XEN_S3
++#include <asm/xen/hypervisor.h>
++
++static inline bool xen_pv_acpi(void)
++{
++	return xen_pv_domain();
++}
++#else
++static inline bool xen_pv_acpi(void)
++{
++	return false;
++}
++#endif
++
++int acpi_notify_hypervisor_state(u8 sleep_state,
++				 u32 pm1a_cnt, u32 pm1b_cnd);
++
++#endif	/* _XEN_ACPI_H */
 diff --git a/include/xen/balloon.h b/include/xen/balloon.h
 new file mode 100644
 index 0000000..e751514
@@ -12905,7 +13079,7 @@ index bffe6d7..cec5f62 100644
  		panic("Cannot allocate SWIOTLB overflow buffer!\n");
  
 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index ad7cd1c..1e1ba56 100644
+index caa9268..1f29611 100644
 --- a/mm/page_alloc.c
 +++ b/mm/page_alloc.c
 @@ -566,6 +566,13 @@ static void __free_pages_ok(struct page *page, unsigned int order)


--- linux-2.6-dmadebug-spinlock.patch DELETED ---


--- patch-2.6.31-rc2-git4.bz2.sign DELETED ---


--- patch-2.6.31-rc2.bz2.sign DELETED ---




More information about the fedora-extras-commits mailing list